[Reto Batch]Edad lunar

Iniciado por Binary_Death, 8 Julio 2012, 18:58 PM

0 Miembros y 1 Visitante están viendo este tema.

Binary_Death

Aquí pueden comentar todo lo que quieran, sus dudas, avances o soluciones acerca del siguiente reto:

Reto iniciado por binary_death.

Reto Nº 16 BATCH

Nombre:           Edad lunar (Binary_Death)
Dificultad:        2/10
Objetivo:         Programar un script que, introduciendo cualquier día, mes y año, devuelva la edad de la luna (y por ende su fase lunar)
Pistas:             No hay que saber demasiado batch, y la forma de calcular esto se encuentra en muchos sitios de la red.
                      Edad lunar = epacta + día del mes + meses desde marzo

BatchianoISpyxolo

Código (DOS) [Seleccionar]
::Edad Lunar Batchiano ;)
@echo off

set /p "dia=Dia: "&set /p  "mes=Mes: "&set /p "anho=Anho: "

::Epacta con número áureo
set /a Epacta=((((anho + 1) %% 19) - 1) * 11) %% 30

if %mes% GEQ 3 (
set /a MesesDesdeMarzo=%mes%-3
) else if %mes% EQU 2 (
set /a MEsesDesdeMarzo=1
) else (
set /a MEsesDesdeMarzo=0
)

::Edad Lunar
set /a EdadLunar = (Epacta + dia + MesesDesdeMarzo) %% 30
echo EdadLunar: %EdadLunar%

::Fase Lunar
set "FaseLunar=Novilunio,Cuarto creciente,Plenilunio,Cuarto menguante"
if %EdadLunar% LSS 7 (
echo %FaseLunar:~0,9%
) else (
if %EdadLunar% LSS 14 (
echo %FaseLunar:~10,16%
) else (
if %EdadLunar% LSS 21 (
echo %FaseLunar:~27,10%
) else (
if %EdadLunar% LSS 29 (
echo %FaseLunar:~38,16%
) else (
echo %FaseLunar:~0,9%
)
)
)
)
pause&exit/b
Puede que desees aprender a programar desde 0: www.espascal.es

Binary_Death