Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Calendario Lunar

Estas en el tema de Calendario Lunar en el foro de Visual Basic clásico en Foros del Web. Buen día a todos!. Una vez más recurro a vosotros. Gracias de antemano. Se trata de un calendario lunar, pero creo que no tiene en ...
  #1 (permalink)  
Antiguo 08/02/2009, 02:42
 
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 6 meses
Puntos: 3
Calendario Lunar

Buen día a todos!. Una vez más recurro a vosotros. Gracias de antemano. Se trata de un calendario lunar, pero creo que no tiene en cuenta los años bisiestos y no se como arreglarlo. El código lo encontré en la red y no dice de quien es pero pide respetar los comentarios del autor y así lo hago. Utiliza el control Microsoft Windows Common Controls 2 6.0 (SP6).
El código es:

Fecha = 0
aux = 0
Anno = DTFecha.Year
Mes = DTFecha.Month
Dia = DTFecha.Day
'1. Sumar las 4 cifras del año
For i = 1 To 4
Fecha = Fecha + Val(Mid(Anno, i, 1))
Next
'2. multiplicar por 11
Fecha = Fecha * 11
'3. restar el mayor multiplo de 30 posible
aux = Fecha \ 30
If aux >= 1 Then
aux = aux * 30
Fecha = Fecha - aux
End If
'4. sume el numero del mes, si mes es enero o febrero sumar 1 digito mas
If (Mes = 1) Or (Mes = 2) Then
Mes = Mes + 1
End If
Fecha = Fecha + Mes
'5. restar el mayor multiplo de 30 posible
aux = Fecha \ 30
If aux >= 1 Then
aux = aux * 30
Fecha = Fecha - aux
End If
'6. sume el dia del mes
Fecha = Fecha + Dia
'7. restar el mayor multiplo de 30 posible
aux = Fecha \ 30
If aux >= 1 Then
aux = aux * 30
Fecha = Fecha - aux
End If
txtFase.Caption = " "
If ((Fecha = 0) Or (Fecha < 7) Or (Fecha >= 29)) Then
txtFase.Caption = "LUNA NUEVA"
Image5.Visible = True
ElseIf ((Fecha = 7) Or (Fecha < 14)) Then
txtFase.Caption = "CUARTO CRECIENTE"
Image3.Visible = True
ElseIf ((Fecha = 15) Or (Fecha < 22)) Then
txtFase.Caption = "LUNA LLENA"
Image2.Visible = True
ElseIf ((Fecha = 22) Or (Fecha < 29)) Then
txtFase.Caption = "CUARTO MENGUANTE"
Image4.Visible = True
End If

'------------

Private Sub Form_Load()
DTFecha.Value = Now
End Sub


Un saludo y gracias.
  #2 (permalink)  
Antiguo 08/02/2009, 05:22
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Calendario Lunar

Hola, no entiendo muy bien ese código (las astrología no es mi fuerte jaja) pero para saber si un año es bisiesto, puedes crearte una función como esta:

Código:
Function EsBisiesto(ElAño As Long) As Boolean
Dim dFecha As Date
dFecha = "01/01/" & ElAño
EsBisiesto = ((Year(dFecha) Mod 4 = 0) And (Year(dFecha) Mod 100 <> 0)) Or (Year(dFecha) Mod 400 = 0)
End Function
  #3 (permalink)  
Antiguo 08/02/2009, 07:10
 
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Calendario Lunar

Gracias Avellaneda, intentaré aclopar el código que me das, ¡a ver si lo consigo, porque soy muy novata!. Con respecto al código que estoy utilizando apenas lo entiendo, sobre todo lo de:
'4. sume el numero del mes, si mes es enero o febrero sumar 1 digito mas
If (Mes = 1) Or (Mes = 2) Then
Mes = Mes + 1
End If

No consigo razonarlo.

Ya os cuento en que queda la cosa.
Un saludo y muchas gracias.
  #4 (permalink)  
Antiguo 08/02/2009, 13:14
 
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Calendario Lunar

Antes de nada decir que antes envié sin quere "respuesta rápida" y no se que significa. Si he molestado a alguien, pido disculpas.
Dejo un link donde explican como calcular las fases de la Luna:
astroava.org/index.php?option=com_content&task=view&id=138&Item id=21

Lo ha probado y parece que funciona.

Otro link con el código que yo estaba utilizando:
isftic.mepsyd.es/w3/eos/MaterialesEducativos/mem2000/astronomia/chicos/pensar/fase_luna_mental.htm

Gracias.

Un saludo
  #5 (permalink)  
Antiguo 08/02/2009, 15:50
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: Calendario Lunar

Hola, yo que soy aficionado a la astronomia hice varios programas uno de ellos justamente es del calculo lunar que se basa en la epacta para el calculo, no es nada sencillo porque hay que tener en cuenta algunas reglas....pero al fin y al cabo parece que funciona bien...si lo queres ver aca te dejo una captura del programa...y aca el link donde esta el codigo...



Widget Fases de la Luna

esta ralizado con una libreria que permite el manejo de png en las imagenes, debes registrar la libreria dll que viene en el programa para poder probarlo...esta solo para el hemisferio sur...para el norte es lo mismo solo la fase contraria...

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #6 (permalink)  
Antiguo 08/02/2009, 16:53
 
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Calendario Lunar

Muchas gracias por la información, me ayuda mucho en lo que quiero hacer.
Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:20.