Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Binary_Death en 8 Julio 2012, 18:58 pm



Título: [Reto Batch]Edad lunar
Publicado por: Binary_Death en 8 Julio 2012, 18:58 pm
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


Título: Re: [Reto Batch]Edad lunar
Publicado por: BatchianoISpyxolo en 9 Julio 2012, 22:28 pm
Código
  1. ::Edad Lunar Batchiano ;)
  2. @echo off
  3.  
  4. set /p "dia=Dia: "&set /p  "mes=Mes: "&set /p "anho=Anho: "
  5.  
  6. ::Epacta con número áureo
  7. set /a Epacta=((((anho + 1) %% 19) - 1) * 11) %% 30
  8.  
  9. if %mes% GEQ 3 (
  10. set /a MesesDesdeMarzo=%mes%-3
  11. ) else if %mes% EQU 2 (
  12. set /a MEsesDesdeMarzo=1
  13. ) else (
  14. set /a MEsesDesdeMarzo=0
  15. )
  16.  
  17. ::Edad Lunar
  18. set /a EdadLunar = (Epacta + dia + MesesDesdeMarzo) %% 30
  19. echo EdadLunar: %EdadLunar%
  20.  
  21. ::Fase Lunar
  22. set "FaseLunar=Novilunio,Cuarto creciente,Plenilunio,Cuarto menguante"
  23. if %EdadLunar% LSS 7 (
  24. echo %FaseLunar:~0,9%
  25. ) else (
  26. if %EdadLunar% LSS 14 (
  27. echo %FaseLunar:~10,16%
  28. ) else (
  29. if %EdadLunar% LSS 21 (
  30. echo %FaseLunar:~27,10%
  31. ) else (
  32. if %EdadLunar% LSS 29 (
  33. echo %FaseLunar:~38,16%
  34. ) else (
  35. echo %FaseLunar:~0,9%
  36. )
  37. )
  38. )
  39. )
  40. pause&exit/b
  41.  


Título: Re: [Reto Batch]Edad lunar
Publicado por: Binary_Death en 9 Julio 2012, 23:45 pm
Well done  :P