il problema ᅵ: calcolare il giorno in cui cade la Pasqua.
Ho sempre risolto il problema con il metodo di Gauss che comporta il
calcolo di alcune variabili da combinare poi tra di loro.
Fin qui tutto bene. Poi ho esaminato il file "calendario_planning" su
riolab (autori Ivano Chiappa e Giovanna Arcadu) e vi ho trovato una
formula apparentemente semplicissima che, mi sembra, non usa il metodo
di Gauss.
Il fatto ᅵ che per quanto cerchi di capirne la logica, proprio non ci
riesco.
Dato in A1 un anno, la formula ᅵ la seguente:
ARROTONDA.DIFETTO(GIORNO(MINUTO(A1/38)/2+56)&"/5/"&$A1;7)-34
Qualcuno mi sa spiegare la logica di questa formula (magari gli autori) ?
Grazie,
Gianluigi
"Gianluigi" <fenn...@yahoo.it> ha scritto nel messaggio
news:eER$tKydKH...@TK2MSFTNGP05.phx.gbl...
Ciao,
potrei spiegarti l'espressione excelliana ma non il suo significato che
abbiamo a nostra volta appreso da navigazioni internet.
Dovrei forse rimandarti, a memoria, ad un altro membro nel gruppo Riolab,
tale Enzo S. il propositore di tale soluzione.
...ma forse basta che funzioni....:-) eheh
ivano
Gianluigi
Cercando altre cose su Internet ho trovato in questa pagina
http://www.cpearson.com/Excel/Easter.aspx la formula di cui sopra, ma
senza nessuna spiegazione (a parte che funziona solo fino al 2368).
Nella stessa pagina si rimanda all'algoritmo dell'United States Naval
Observatory (http://aa.usno.navy.mil/faq/docs/easter.php) in cui si
danno molte e accurate spiegazioni sulla data della Pasqua, ma senza
nessun riferimento alla formula da cui sono partito.
Boh,
Gianluigi
"Gianluigi" <fenn...@yahoo.it> ha scritto nel messaggio
news:eM51c9zd...@TK2MSFTNGP06.phx.gbl...
Ciao,
beh, nemmeno io riesco ad esserti d'aiuto.
Se un giorno riuscirai a scoprire il senso di tale formula, faccelo
sapere...e poi il "funziona solo fino al 2368"...mi pare che basti ed
avanzi; forse per tale data penso saremo un po' tutti lontani dai problemi
inerenti ad excel
:-)
con simpatia
ivano
> Ciao,
> beh, nemmeno io riesco ad esserti d'aiuto.
> Se un giorno riuscirai a scoprire il senso di tale formula, faccelo
> sapere...e poi il "funziona solo fino al 2368"...mi pare che basti ed
> avanzi; forse per tale data penso saremo un po' tutti lontani dai problemi
> inerenti ad excel
Se ho ben tradotto la formula che l'OP ha inviato:
=ROUNDDOWN(DAY(MINUTE(W4/38)/2+56)&"/5/"&W4,7)-34
ebbene, essa medesima, sbaglia il calcolo:
Pasqua 2009 17-04-2009 esatto: 12-04-2009
Pasqua 2010 06-04-2010 esatto: 04-04-2010
Pasqua 2000 25-04-2000 esatto: 23-04-2000
Non ho fatto altri controlli: mi son parsi sufficienti.
Oddio, sarᅵ quel fiasco iniziato a messodᅵ?
Bruno
> Salve,
>
> il problema è: calcolare il giorno in cui cade la Pasqua.
>
> Ho sempre risolto il problema con il metodo di Gauss che comporta il
> calcolo di alcune variabili da combinare poi tra di loro.
> Fin qui tutto bene. Poi ho esaminato il file "calendario_planning" su
> riolab (autori Ivano Chiappa e Giovanna Arcadu) e vi ho trovato una
> formula apparentemente semplicissima che, mi sembra, non usa il metodo
> di Gauss.
> Il fatto è che per quanto cerchi di capirne la logica, proprio non ci
> riesco.
> Dato in A1 un anno, la formula è la seguente:
> ARROTONDA.DIFETTO(GIORNO(MINUTO(A1/38)/2+56)&"/5/"&$A1;7)-34
>
> Qualcuno mi sa spiegare la logica di questa formula (magari gli autori) ?
>
> Grazie,
>
sembrerebbe l'algoritmo di OUDIN-TONDERING
saluti
r
--
Come e dove incollare il codice:
http://www.rondebruin.nl/code.htm
Le mie case nel web:
http://excelvba.altervista.org/blog/index.php/Table/Excel-VBA/
'ALGORITMO DI OUDIN-TONDERING
Function Pasqua(Anno As Integer) As Date
Dim G As Long 'numero d'oro - 1
Dim I As Long 'numero di giorni dal 21 marzo al plenilunio
'pasquale, corretto però per tener conto delle
'eccezioni che si verificano quando l'epatta è
'uguale a 24 o 25 (e H è uguale a 28 o 29)
Dim J As Long 'giorno della settimana del plenilunio pasquale
'(dove 0 = domenica, 1 = lunedì, ecc.)
Dim H As Long '23 - epatta (aggiungendo 30 se il risultato
'diventa negativo), uguale al numero di giorni
'dal 21 marzo al plenilunio pasquale, prima
'delle correzioni che tengano conto delle
'eccezioni che si verificano quando l'epatta
'è uguale a 24 o 25 (e H è uguale a 28 o 29)
Dim L As Long 'numero di giorni dal 21 marzo alla domenica
'del plenilunio pasquale o precedente il
'plenilunio
Dim C As Long
Dim M As Integer
Dim GG As Integer
G = Anno Mod 19
If Anno < 1583 Then
I = (15 + (19 * G)) Mod 30
J = (Anno + (Anno \ 4) + I) Mod 7
Else
C = Anno \ 100
H = (C - (C \ 4) - (((8 * C) + 13) \ 25) + (19 * G) + 15) Mod 30
I = H - ((H \ 28) * (1 - (29 \ (H + 1))) * ((21 - G) \ 11))
J = (Anno + (Anno \ 4) + I + 2 - C + (C \ 4)) Mod 7
End If
L = I - J
M = 3 + ((L + 40) \ 44)
GG = L + 28 - (31 * (M \ 4))
Pasqua = DateSerial(Anno, M, GG)
End Function
il mod 7 e il mod 30 ricordano la funzione ...
saluti
r
--
Come e dove incollare il codice:
http://www.rondebruin.nl/code.htm
Le mie case nel web:
http://excelvba.altervista.org/blog/index.php/Table/Excel-VBA/
"Gianluigi" ha scritto:
> Salve,
>
> il problema è: calcolare il giorno in cui cade la Pasqua.
>
> Ho sempre risolto il problema con il metodo di Gauss che comporta il
> calcolo di alcune variabili da combinare poi tra di loro.
> Fin qui tutto bene. Poi ho esaminato il file "calendario_planning" su
> riolab (autori Ivano Chiappa e Giovanna Arcadu) e vi ho trovato una
> formula apparentemente semplicissima che, mi sembra, non usa il metodo
> di Gauss.
> Il fatto è che per quanto cerchi di capirne la logica, proprio non ci
> riesco.
> Dato in A1 un anno, la formula è la seguente:
> ARROTONDA.DIFETTO(GIORNO(MINUTO(A1/38)/2+56)&"/5/"&$A1;7)-34
>
> Qualcuno mi sa spiegare la logica di questa formula (magari gli autori) ?
>
> Grazie,
>
>
> Gianluigi
> .
>
> ebbene, essa medesima, sbaglia il calcolo:
> Pasqua 2009 17-04-2009 esatto: 12-04-2009
> Pasqua 2010 06-04-2010 esatto: 04-04-2010
> Pasqua 2000 25-04-2000 esatto: 23-04-2000
deve essere il fiasco (bianco o rosso?) perchᅵ a me la stessa formula in
italiano restituisce risultati esatti.
>
> Non ho fatto altri controlli: mi son parsi sufficienti.
>
> Oddio, sarᅵ quel fiasco iniziato a messodᅵ?
>
> Bruno
Ciao Bruno, io che di prima mattina sono sobrio, solo un tea con pasticcini,
avrei scovato una tua diversa traduzione:
=FLOOR(DATE(C4,5,DAY(MINUTE(C4/38)/2+56)),7)-34
che sembrava funzionare egregiamente, perᅵ io non ho la versione inglese
quindi non posso accertarlo.
Nel marzo dell'anno scorso iniziasti un "dotto" thread sull'argomento:
http://snurl.com/tlxnz.
--
ciao paoloard
http://riolab.org
> deve essere il fiasco (bianco o rosso?) perchᅵ a me la stessa formula in
> italiano restituisce risultati esatti.
> Ciao Bruno, io che di prima mattina sono sobrio, solo un tea con
> pasticcini, avrei scovato una tua diversa traduzione:
>
> =FLOOR(DATE(C4,5,DAY(MINUTE(C4/38)/2+56)),7)-34
>
> che sembrava funzionare egregiamente, perᅵ io non ho la versione inglese
> quindi non posso accertarlo.
> Nel marzo dell'anno scorso iniziasti un "dotto" thread sull'argomento:
> http://snurl.com/tlxnz.
Ok Paolo, con FLOOR funziona perfettamente...
Rosso, rosso... era San Giovese, il santo patrono della Romagna.
Bruno