|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
   AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


Nuevo concurso para España, Argentina, Brasil, Chile, Colombia, Ecuador, México, Perú y Portugal.

B4A en español - Juan Antonio Villalpando
(BASIC4Android)

-- Tutorial de B4A --

Volver al índice del tutorial

____________________________

84.- Fase lunar.

La Luna completa una fase cada 29 días, concretamente cada 29,5305882 días. Por eso los meses se aproximan a esta cantidad de días, unos 30 días.

El año tiene 365,25 días. Por eso cada 4 años se agrega un día al calendario, para corregir ese 0,25.

La Luna gira con la Tierra, por eso siempre vemos la misma cara de la Luna, siempre mira a la Tierra con la misma cara.

Vamos a realizar un programa en donde introduzcamos un día, mes y año, al pulsar un botón nos indicará la fase lunar correspondiente a ese días.

Además al arrancar el programa nos indicará la fase lunar actual.

El programa está realizado adaptado los códigos encontrados en...

http://www.voidware.com/moon_phase.htm

Los dibujos de las fases lunares y la comprobación del funcionamiento lo he consultado en esta web...

http://www.calendario-365.es/luna/calendario-lunar.html

- Los resultados son aproximados.

Designer

- Vamos al Designer y creamos un "layout" como muestro en la imagen de la izquierda.

- Ponemos:

Un ImageView
Tres EditText

Un Button.

- Bajamos este archivo de los dibujos de las fases lunares y copiamos los dibujos de las fases en la carpeta Files de nuestro proyecto.

luna.zip


Código
Sub Process_Globals
' Juan Antonio Villalpando
' juana1991@yahoo.com
' Noviembre 2013
End Sub

Sub Globals
Dim ImageView1 As ImageView
Dim Label1 As Label
Dim Edittext1, Edittext2, Edittext3 As EditText
Dim annus, mes, dia As Int
Dim annus_real, mes_real, tiempo_total As Double
Dim bb As Int
Dim archivo As String
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("layout")
    annus = DateTime.GetYear(DateTime.Now)
    mes = DateTime.GetMonth(DateTime.Now)
    dia = DateTime.GetDayOfMonth(DateTime.Now)
    Edittext1.Text = dia
    Edittext2.Text = mes
    Edittext3.Text = annus
    FaseLunar
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub FaseLunar As String
    If (mes < 3) Then
    annus = annus - 1
    mes = mes + 12
    End If

    mes = mes + 1
    annus_real = 365.25 * annus ' El año tiene 365,25 días. Estos son los días que han pasado desde el año 1.
    mes_real = 30.6 * mes 
    tiempo_total = annus_real + mes_real + dia - 694039.09 ' Desde 1900

    tiempo_total = tiempo_total / 29.5305882 ' Divide por el ciclo lunar

    bb = tiempo_total ' Parte decimal del tiempo total
    tiempo_total = tiempo_total - bb ' Parte entera del tiempo total

    bb = tiempo_total * 29 + 0.5 

    archivo = bb & ".jpg"
    ImageView1.Bitmap=LoadBitmap(File.DirAssets, archivo)
End Sub

Sub Button1_Click
    dia = Edittext1.Text
    mes = Edittext2.Text
    annus = Edittext3.text
    FaseLunar
End Sub

__________________
- Comentario.

- Cuando ejecutamos la aplicación nos muestra la fase lunar del día actual.
- Si ponemos en los casilleros un día, un mes y un año y pulsamos el Botón, nos mostrará la fase lunar de ese día.

________________________________

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información