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
::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
Well done :P