Calcolo della Pasqua Esatto dal 1900 al 9999

MastroLindo

Utente abituale
12 Aprile 2018
244
28
venezia
EXCEL 2016
1
Ciao a Tutti.
In questi giorni chiuso in casa forzatamente ho provato studiare il calcolo della Pasqua senza macro.
La formula ha 432 caratteri.
Ora la sto testando dal Anno 1900 al Anno 9999.
Questa formula ha 60 errori, cioè sbaglia la Pasqua in 60 anni su 8099 anni. Cioè da 1900 al 9999.
=ARROTONDA.ECCESSO(DATA(A2;3;21)+RESTO(15+INT(A2/100)-INT(INT(A2/100)/4)-INT((13+8*INT(A2/100))/25)-11*RESTO(A2;19);30);7)+1
Ciao
 
Ultima modifica:

MastroLindo

Utente abituale
12 Aprile 2018
244
28
venezia
EXCEL 2016
1
[...]
Premetto che è tutto da verificare anche da altri users interessati, poiché possono esserci degli errori.
Io ho verificato i risultati con questa Macro che da lo stesso risultato della formula postata da Bruno @Bruno e dei file di confronto postati da zio_tom @zio_tom .

Visual Basic:
Public Function Pasqua(Anno As Integer)
Dim a, b, c, d, e, f, g, h, i, l, m, n, o, p As Integer
a = Anno Mod 19
b = Int(Anno / 100)
c = Anno Mod 100
d = Int(b / 4)
e = b Mod 4
f = Int((b + 8) / 25)
g = Int((b - f + 1) / 3)
h = (19 * a + b - d - g + 15) Mod 30
i = Int(c / 4)
l = c Mod 4
m = (32 + 2 * e + 2 * i - h - l) Mod 7
n = Int((a + 11 * h + 22 * m) / 451)
p = ((h + m - 7 * n + 114) Mod 31) + 1       'Giorno
o = Int((h + m - 7 * n + 114) / 31)          'Mese
'Pasqua = CStr(p) + "/" + CStr(o) + "/" + CStr(Anno)
Pasqua = DateSerial(Anno, o, p)
End Function
Ciao Baloon_50 @Baloon_50 grazie del tuo suggerimento.
Era la formula che usavo sempre quando mi serviva sapere la cadenza della Pasqua. Però mi sono accorto che non va bene per tutti gli anni, partendo dal 1900 al 9999.
In questo lasso di tempo mi da 5790 errori, cioè la data della Pasqua non è giusta per 5790 anni su 8099 anni.
A mio modesto parere la formula che ha meno errori, cioè sbaglia solo 60 date della pasqua su 8099 è questa:
=ARROTONDA.ECCESSO(DATA(A2;3;21)+RESTO(15+INT(A2/100)-INT(INT(A2/100)/4)-INT((13+8*INT(A2/100))/25)-11*RESTO(A2;19);30);7)+1, prelevata dal sito consigliato da Bruno @Bruno , io ho solo aggiunto l'arrotondamento.
Lavorando su questa formula sono arrivato ad un'altra formula di 432 caratteri correggendo anche le 60 date pasquali sbagliate.
 

zio_tom

Utente assiduo
21 Ottobre 2015
1.892
50
Bassano del Grappa (VI)
2019 - Win10pro
44
Buongiorno a tutti.
io uso questa, con molte meno variabili ... 3
Visual Basic:
'############################################
Function pGiornoCorrentePasqua(a As Integer) As Date
'Calcolo data della Pasqua calendario gregoriano
'a = Anno  > 1582
'############################################
Dim b As Integer, f As Integer, m As Integer
   b = a \ 100 + 1
   f = 5 * a \ 4 - 3 * b \ 4 + 2
   b = (11 * (a Mod 19) + (8 * b + 5) \ 25 + 38 - 3 * b \ 4) Mod 30
   b = 44 - b + ((b = 25 And (a Mod 19) > 10) Or b = 24)
   b = b - 30 * (b < 21)
   f = b + 7 - ((f + b) Mod 7)
   m = 3 - (f > 31)       'mese di Pasqua
   f = f + 31 * (f > 31)  'giorno di Pasqua
   pGiornoCorrentePasqua = DateSerial(a, m, f)
End Function
e poi ATTENZIONE come hai fatto DIM
tranne la 'p' sono tutte prese di default come 'Variant'
perlomeno dovresti aggiungere 'AS Integer' ad ogni varibile della 'Dim'
e pure la variabile 'Pasqua' ti esce come Variant
 
  • Like
Reactions: MastroLindo

MastroLindo

Utente abituale
12 Aprile 2018
244
28
venezia
EXCEL 2016
1
Ciao a tutti.
Correggetemi se sbaglio.
Dedicato per chi è interessato al calcolo esatto della Pasqua con una formula unica senza macro
Visto il problema Coronavirus, ho voluto studiare come calcolare la Pasqua Gregoriana, prendendo spunto dal sito https://atlaspragmatica.com/computus-calculating-the-date-of-easter/
Creando questa formula.

=ARROTONDA.ECCESSO(DATA(A2;3;21)+RESTO(15+INT(A2/100)-INT(INT(A2/100)/4)-INT((13+8*INT(A2/100))/25)-11*RESTO(A2;19);30);7)+1

Ottima formula, a mio parere la più esatta delle formule senza macro per il calcolo della Pasqua dal 1900 al 9999 che visto in circolazione nel web.
Però anche la sopracitata formula ha 60 errori, cioè nel lasso di tempo che va da 1900 al 9999 (limiti di date imposte da excel), in pratica 60 anni su 8099 la domenica di Pasqua era sbagliata, quindi per ovviare a questi errori ho messo dei correttori. Penso che i professionisti di excel possono fare meglio. E' formata da 410 caratteri.
Nel file ci sono dei confronti della mia formula, e con calcoli fatti con macro.
Ciao

 

Marco Lauria

Utente assiduo
2 Gennaio 2017
1.566
115
Roma
www.artigianamaterassi.net
Excel 2016
179
Non entro nel merito dei calcoli della Pasqua,
ma c'è un'errore nel verificare se un anno è bisestile:
infatti 1900 lo da bisestile anche se non lo è.
La formula dice che un anno è bisestile quando è divisibile per 4,
ma se inizio secolo( divisibile per 100) DEVE essere divisibile ANCHE per 400.
Quindi è bisestile un secolo ogni 4.
 
  • Like
Reactions: MastroLindo

MastroLindo

Utente abituale
12 Aprile 2018
244
28
venezia
EXCEL 2016
1
Ciao Marco Lauria @Marco Lauria
grazie della tua verifica.
Per calcolare la pasqua avevo provato come parametro l'anno bisestile, ma mi sono accorto che non serviva a niente. Quindi la colonna che riporta gli anni Bisestili e NonBisestili si può eliminare. I parametri che ho calcolato per le correzioni sono cinque.
Però excel accetta la data 29/02/1900 :confusostelle:
Grazie.
Ciao
 

MastroLindo

Utente abituale
12 Aprile 2018
244
28
venezia
EXCEL 2016
1
Ciao per chi interessa:
Calcolo esatto della Pasqua dal 1900 al 9999 con formula unica di 392 caratteri.

=ARROTONDA.ECCESSO(DATA(A2;3;21)+RESTO(15+INT(A2/100)-INT(INT(A2/100)/4)-INT((13+8*INT(A2/100))/25)-11*RESTO(A2;19);30);7)-SE(E(RESTO(DATA(A2;4;18);7)=1;RESTO(A2;19)>10;RESTO(15+INT(A2/100)-INT(INT(A2/100)/4)-INT((13+8*INT(A2/100))/25)-11*RESTO(A2;19);30)=28);7;0)-SE(E(RESTO(DATA(A2;4;26);7)=1;RESTO(15+INT(A2/100)-INT(INT(A2/100)/4)-INT((13+8*INT(A2/100))/25)-11*RESTO(A2;19);30)=29);7;0)+1

Mettere l'anno A2
 
  • Like
Reactions: Robyprog

Robyprog

Utente abituale
11 Agosto 2019
308
28
Palermo
Excel 2010
2
Ciao MastroLindo @MastroLindo

Vedo che ti sei spinto oltre il 4099... per cui, come ho fatto con le altre che ho racimolato in rete e su questo forum, l'ho aggiunta al mio file di confronto che avevo messo a punto in questa tua discussione insieme alle altre (spero non ti dispiaccia) cappello_saluta .

PS: Il confronto parte da quest'anno ma si può modificare a piacimento nella cella A1
PSS: Per problemi di spazio i confronti nel file si fermano al 2242 ma basta ricopiare in basso ed e' fatta.

Alla prossimaPollicioneInSu
 

Allegati

Ultima modifica:

MastroLindo

Utente abituale
12 Aprile 2018
244
28
venezia
EXCEL 2016
1
[...]
Ciao Robyprog @Robyprog .
Hai fatto bene. Grazie
Ho rivisto ancora la mia formula e sono riuscito a diminuire ancora di 2 caratteri la formula.
 

MastroLindo

Utente abituale
12 Aprile 2018
244
28
venezia
EXCEL 2016
1
Ciao a tutti.
Con il consiglio di Bruno @Bruno che ringrazio e una mia modifica la formula è stata ridotta a 358 caratteri.
Per chi interessa eccola:

=ARROTONDA.ECCESSO(DATA(A2;3;RESTO(15+INT(A2%)-INT(INT(A2%)/4)-INT((13+8*INT(A2%))/25)-11*RESTO(A2;19);30));7)-SE(E(RESTO(DATA(A2;4;18);7)=1;RESTO(A2;19)>10;RESTO(15+INT(A2%)-INT(INT(A2%)/4)-INT((13+8*INT(A2%))/25)-11*RESTO(A2;19);30)=28);7)-SE(E(RESTO(DATA(A2;4;26);7)=1;RESTO(15+INT(A2%)-INT(INT(A2%)/4)-INT((13+8*INT(A2%))/25)-11*RESTO(A2;19);30)=29);7)+22

Anno in A2
Notte
 

MastroLindo

Utente abituale
12 Aprile 2018
244
28
venezia
EXCEL 2016
1
Ciao
Ho elaborato nuovamente la formula unica per il calcolo Esatto della Pasqua dal 1900 al 9999 (limiti di Anni imposti da EXCEL). Come postato settimane fa il problema è sull'arrotondamento che creava 80 errori, di cui: 19 errori per il 25 aprile, e 41 errori perché la Pasqua che cade erroneamente anche il 26 aprile. Nella formula precedente toglievo 7 giorni, perché ARROTONDA.ECCESSO(data(x;y;z);7)+1 arrotondava il 18 aprile e il 19 aprile cadenti di domenica, alla domenica successiva cioè il 25 Aprile e Il 26 aprile. Quindi con questa nuova formula ho sottratto 1 alla data portando i giorni 18,19 aprile al 17,18 aprile cioè al sabato, cosi l'arrotondamento ha fatto l'effetto voluto, e nello stesso tempo ho accorciato i caratteri della formula portandoli a 305 caratteri. Tutto questo con l'aiuto di altre formule che ho sviluppato nel foglio di lavoro e mi hanno fatto capire come intervenire. Sicuramente altri users faranno di meglio.
Per chi interessa ecco la formula unica per il calcolo della Pasqua.

=ARROTONDA.ECCESSO(DATA(A2;3;RESTO(15+INT(A2%)-INT(INT(A2%)/4)-INT((13+8*INT(A2%))/25)-11*RESTO(A2;19);30)-SE(RESTO(15+INT(A2%)-INT(INT(A2%)/4)-INT((13+8*INT(A2%))/25)-11*RESTO(A2;19);30)=29;1)-SE(E(RESTO(A2;19)>10;RESTO(15+INT(A2%)-INT(INT(A2%)/4)-INT((13+8*INT(A2%))/25)-11*RESTO(A2;19);30)=28);1));7)+22

Anno in A2.
 

MastroLindo

Utente abituale
12 Aprile 2018
244
28
venezia
EXCEL 2016
1
Ciao a tutti.
Penso di essere arrivato alla formula finale di 198 caratteri per il calcolo ESATTO della Pasqua.
Partendo dalla formula sottostante, che dopo vari confronti con altre formule trovate nel web e quella che dal 1900 al 9999 sbaglia solo 60 anni. Mentre le formule trovate nel web sbagliano 5000 anni più.

=ARROTONDA.ECCESSO(DATA(A2;3;RESTO(15+A2%-INT(A2%/4)-INT((13+8*INT(A2%))/25)-11*RESTO(A2;19);30));7)+22

"ARROTONDA.ECCESSO" mi causa 60 errori; anzi se vogliamo essere più precisi corregge 8040 errori su 8100. Questi errori sono dovuti all'arrotondamento della Pasqua alla domenica seguente e sono:.
19 errori perché la Pasqua cade il 25 Aprile anziché il 18 Aprile.
41 errori perché la Pasqua cade il 26 Aprile anziché il 19 Aprile.
Quindi ho studiato una formula unica di 198 caratteri che corregge i 60 errori. Ringrazio Bruno @Bruno per l'aiuto.

=ARROTONDA.ECCESSO(DATA(A2;3;RESTO(15+A2%-INT(A2%/4)-INT((13+8*INT(A2%))/25)-11*RESTO(A2;19);30)-SE(RESTO(15+A2%-INT(A2%/4)-INT((13+8*INT(A2%))/25)-11*RESTO(A2;19);30)+(RESTO(A2;19)>10)>29;1));7)+22

Anno in A2

Allego file dove usando i filtri di excel e Falso o Vero posso calcolare la cadenza della Pasqua con stesso giorno e stesso mese.
Inoltre posso calcolare la ripetizione di stesso giorno e stesso mese di una data qualsiasi.


Ciao a tutti e Grazie
 
Ultima modifica:

MastroLindo

Utente abituale
12 Aprile 2018
244
28
venezia
EXCEL 2016
1
Ciao a tutti,
ormai la pasqua 2021 è passata; e forse diventerà una festa fissa, se i capi delle chiese Cristiana e Ortodossa si mettono d'accordo.
Comunque ho fatto un piccolo lavoretto, ho aggiunto una colonna che usa la gestione dei nomi accorciando ancora la formula. Premetto in colonna funziona tutto bene. Tutti i consigli e suggerimenti sono bene accetti.
Ciao
Il file lo potete scaricare qui:
<a href=http://www.filedropper.com/calcoloesattodellapasquaconformulaunica1><img src=http://www.filedropper.com/download_button.png width=127 height=145 border=0/></a><br /><div style=font-size:9px;font-family:Arial, Helvetica, sans-serif;width:127px;font-color:#44a854;> <a href=http://www.filedropper.com >file upload storage</a></div>
 

MastroLindo

Utente abituale
12 Aprile 2018
244
28
venezia
EXCEL 2016
1
Ciao a tutti.
Ho visto molte formule senza macro per il calcolo della Pasqua, ma purtroppo dopo qualche centinaio di anni sbagliano il calcolo.
Sono partito da questa formula questa formula adattata da me: (anno in A2)

ARROTONDA.ECCESSO(DATA(A2;3;21)+RESTO(15+INT(A2/100)-INT(INT(A2/100)/4)-INT((13+8*INT(A2/100))/25)-11*RESTO(A2;19);30);7)+1

Semplificando sono arrivato a:

=ARROTONDA.ECCESSO(DATA(A2;3;RESTO(15+A2%-INT(A2%/4)-INT((13+8*INT(A2%))/25)-11*RESTO(A2;19);30));7)+22

Però anche la sopracitata formula ha 60 errori e sono:.
19 errori perché la Pasqua cade il 25 Aprile anziché il 18 Aprile.
41 errori perché la Pasqua cade il 26 Aprile (che non esiste) anziché il 19 Aprile.
Quindi ho studiato una formula unica finale che corregge i 60 errori, in pratica la formula sbagliava 60 anni su 8099 la domenica di Pasqua, quindi per ovviare a questi 60 errori ho ideato 2 correttori:

-SE(RESTO(15+A2%-INT(A2%/4)-INT((13+8*INT(A2%))/25)-11*RESTO(A2;19);30)+(RESTO(A2;19)>10) >29;1));7)+22

SE VERO sottraggo 1 da:

=ARROTONDA.ECCESSO(DATA(A2;3;RESTO(15+A2%-INT(A2%/4)-INT((13+8*INT(A2%))/25)-11*RESTO(A2;19);30)

In maniera tale che “ARROTONDA.ECCESSO (……………….);7+1” arrotondi a domenica della settimana prima.
Funziona perfettamente dal 1900 al 9999, autocorreggendosi col passare degli anni.
Per il calcolo si parte sempre dal 21 marzo di qualsiasi anno, equinozio ecclesiastico fisso, voluto dalla riforma attuata nel 1582 da papa Gregorio XIII, ed è per questo che la data di Pasqua è compresa tra il 22 marzo e il 25 aprile (inclusi). Con i vari aggiustamenti compresi nella formula, la correzione dei 60 errori e semplificazioni. sono arrivato alla formula finale esatta di 198 caratteri:

=ARROTONDA.ECCESSO(DATA(A2;3;RESTO(15+A2%-INT(A2%/4)-INT((13+8*INT(A2%))/25)-11*RESTO(A2;19);30)-SE(RESTO(15+A2%-INT(A2%/4)-INT((13+8*INT(A2%))/25)-11*RESTO(A2;19);30)+(RESTO(A2;19)>10)>29;1));7)+22

Nota bene non è esente da errori.
 
  • Like
Reactions: ges

MastroLindo

Utente abituale
12 Aprile 2018
244
28
venezia
EXCEL 2016
1
Calcolo della pasqua senza Macro

I controlli di riscontro sono stati effettuati con la macro applicando la formula di Gauss

Formule uniche senza macro:



Mia formula MarcoBt

Funziona perfettamente dal 1900 al 9999 senza errori

=ARROTONDA.ECCESSO(DATA(A2;3;RESTO(15+A2%-INT(A2%/4)-INT((13+8*INT(A2%))/25)-11*RESTO(A2;19);30)-SE(RESTO(15+A2%-INT(A2%/4)-INT((13+8*INT(A2%))/25)-11*RESTO(A2;19);30)+(RESTO(A2;19)>10)>29;1));7)+22





Formula non conosco il nomedell’autore.

Questa formula dal 1900 al 9999 ha 5790 errori

=ARROTONDA.DIFETTO(DATA(A2;5;GIORNO(MINUTO(A2/38)/2+56));7)-34


Formula non conosco il nome dell’autore

Questa formula dal 1900 al 9999 ha 7705 errori

=DATA(A2;3;22+RESTO(24+19*RESTO(A2;19);30)+RESTO(5+4*A2+2*RESTO(A2;4)+6*RESTO(24+19*RESTO(A2;19);30);7))





Formula di Thomas Jansen

Questa formula dal 1900 al 9999 ha 5802 errori

=VALUTA(("4/"&A2)/7+RESTO(19*RESTO(A2;19)-7;30)*14%;)*7-6





Formula di Gerhard Somitsch

Questa formula dal 1900 al 9999 ha 5802 errori

=DATA(A2;3;29,56+0,979*RESTO(204-11*RESTO(A2;19);30)-GIORNO.SETTIMANA(DATA(A2;3;28,56+0,979*RESTO(204-11*RESTO(A2;19);30))))





Formula non conosco il nome dell’autore

Questa formula dal 1900 al 9999 ha 5892 errori

=ARROTONDA(DATA(A2;4;RESTO(234-11*RESTO(A2;19);30))/7;)*7-6


Il file si trova qua. Leggete i commenti.
Ciao
 

MastroLindo

Utente abituale
12 Aprile 2018
244
28
venezia
EXCEL 2016
1
Ciao a tutti gli users
Volete sapere tutto sulla Pasqua?

In allegato il file che vi dirà tutti i segreti e le curiosità della Pasqua e altro.

Si potrà calcolare le feste e ricorrenze mobili legate alla Pasqua, le cadenze della Pasqua negli anni, totale degli anni di cadenza della Pasqua con stesso giorno e stesso mese e tanto altro.

Usando i filtri si potrà ricercare molto altro.
Il file non è esente da errori.

Ciao

 
  • Like
Reactions: Rubik72

MastroLindo

Utente abituale
12 Aprile 2018
244
28
venezia
EXCEL 2016
1
Ciao a tutti,
per chi interessa ho aggiunto un altro foglio di calcolo al programma.
Inoltre per renderlo un pò più veloce ho cancellato moltissime formule lasciando attiva la formula iniziale.
il file non è sente da errori.
Ciao alle prossime.
Per uppare il file ho trovato questo sito.

Cortesemente se qualche users mi consiglia sito gratuito per uppare files. Grazie
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!