Tradotto da una vecchia procedura Clipper
codice:
<%
Function fLluna(DG) ' RITORNA 5 SE C'E' LA LUNA PIENA
'* * * * * ------------- ** ------------------------------------------------- *
'* LA LUNA COMPIE UN GIRO COMPLETO INTORNO ALLA TERRA
'* (RIFERIMENTO AL SOLE) IN 29g 12h 44m 3s PARI A 2551443 secondi
'* altra fonte: 29,5305882 giorni 2551442,8205
TL = (DateDiff("S", DateSerial(2000,1,1), DG)+2114500) Mod 2551443
RV = 1
if TL < 2508243 then RV=8 ' CALANTE DA ULTIMO
if TL < 1956782.25 then RV=7 ' ULTIMO QUARTO
if TL < 1870382.25 then RV=6 ' CALANTE DA PIENA
if TL < 1318921.5 then RV=5 ' PIENA
if TL < 1232521.5 then RV=4 ' CRESCENTE DA PRIMO
if TL < 681060.75 then RV=3 ' PRIMO QUARTO
if TL < 594660.75 then RV=2 ' CRESCENTE DA NUOVA
if TL < 43200 then RV=1 ' NUOVA
fLuna = RV
End Function
%>
Le date testabili partono dal primo gennaio 2000... se modifichi occorre trovare sperimentalmente il valore da sostituire all'attuale 2114500
Non garantisco sulla precisione
ciao