Newsgroup: it.comp.lang.visual-basic
Titolo: Data di Pasqua.

C'e` qualcuno che conosce l'algoritmo per calcolare la data di Pasqua?
Grazie.
--
Ciao.
---------------------------------------
Mauro CB
blue...@atcenter.it
NON modificare l'indirizzo:
me ne frego degli spammers!
---------------------------------------

Su uno degli ultimi numeri (siamo al 9) della rivista IO programmo c'è un
algoritmo (intitolato Pasqualità basiche) che calcola la data di Pasqua.
Purtroppo non l'ho ora sottomano (sono in ufficio e la rivista è a casa).
Se qualcuno legge quella rivista potrà trovarlo sul CD allegato, altrimenti
non disperare che entro domani te lo faccio avere. (così citeremo anche
l'autore dell'algoritmo).
Ciao.
Mauro CB ha scritto:


>C'e` qualcuno che conosce l'algoritmo per calcolare la data di Pasqua?
Chiedilo a un prete!

C'e` qualcuno che conosce l'algoritmo per calcolare la data di Pasqua?


 wrote in article


 
Si trova sul numero di ottobre 1997. Ma l'algoritmo non funziona in modo
corretto in quanto calcola pasqua anche di sabato e partendo solo dal 1901
in poi.

...

Si tratta dell'algoritmo pubblicato su IoProgrammo di ottobre 1997 ma non
funziona in modo corretto in quanto calcola pasqua anche di sabato.


Perchè lo venderebbe!
mailto:
lu...@mywebpages.com
---------------------------

Io l'ho realizzato per Excel . Ecco la formula
=SE(RESTO(19*RESTO(B1;19)+24;30)+RESTO(2*RESTO(B1;4)+4*RESTO(B1;7)+6*RESTO(1
9*RESTO(B1;19)+24;30)+5;7)-9<=0;DATA(B1;3;22+RESTO(19*RESTO(B1;19)+24;30)+RE
STO(2*RESTO(B1;4)+4*RESTO(B1;7)+6*RESTO(19*RESTO(B1;19)+24;30)+5;7));DATA(B1
;4;RESTO(19*RESTO(B1;19)+24;30)+RESTO(2*RESTO(B1;4)+4*RESTO(B1;7)+6*RESTO(19
*RESTO(B1;19)+24;30)+5;7)-9))
Sostituisci B1 con l'anno desiderato e RESTO con le funzioni VB
Ciao

A chi lo dovrebbe vendere? Io lo conosco ma non ho trovato acquirenti :-)


---------------------------------------


 


 


Il metodo è pubblicato a pagina 27 del libro di 
Jean Meeus 
"Astronomia con il computer - Formule, metodi di calcolo, esempi 
numerici" - ed.Hoepli
 - (Lire 25000 nel 1990 - libro molto 
interessante - titolo originale dell'opera 
"Astronomical 
Formulæ for Calculators"
 ) ove si dice, a proposito del 
calcolo della data di Pasqua:








«Il medodo qui descritto 
è stato pubblicato da Spencer Jones nel suo libro 
General 
Astronomy
 (pagg.73-74 dell'edizione del 1922). È stato 
ripubblicato nel 
Journal of the British Astronomical 
Association
, vol.88, pag.91 (dicembre 1977), dove si dice che fu 
sviluppato nel 1876 e che comparve nell'
Ecclesiastic 
Calendar
 di Butcher.


A differenza della formula data da Gauss, questo metodo 
non ha eccezioni ed è valido per tutti gli anni nel 

Calendario Gregoriano
, ossia dal 1583 in poi. La 
procedura per determinare la data della Pasqua à la 
seguente: 


 


dividere      per  quoziente 
resto
 




 
l'anno x       
19      -       
a


l'anno x      
100      b       
c
 


b               
4      d       
e
 


b+8            
25      f       
-
 


b-f+1           
3      g       
-
 


19a+b-d-g+15   
30      -       
h
 


c               
4      i       
k
 


32+2e+2i-h-k    
7      -       
l
 


a+11h-22l     
451      m       
-
 


h+l-7m+114     
31      n       
p
 




 
Allora n = numero del mese (3=marzo, 
4=aprile)


p+1 = giorno del mese in cui cade 
la domenica di Pasqua
 


 


(...omissis...)
 


 


Le date estreme della Pasqua sono 
Marzo 22 (come nel 1818 e nel 2285) ed Aprile 25 (come nel 1886, nel 1943 e nel 
2038)»
 








 


E per i più pigri, ecco l'algoritmo 
che:


- Butcher ha pubblicato nel 1876 in 
"Ecclesiastic Calendar",


- Spencer Jones ha ri-pubblicato nel 1922 in 
"General Astronomy"


- è stato nuovamente ri-ri-pubblicato 
nel 1977 in "Journal of the British Astronomical 
Association"


- Jean Meeus ha 
ri-ri-ri-pubblicato nel 1979 in 
"Astronomical Formulæ for 
Calculators"


- G.Paolo Bizzaro ha 
convertito in VB ed inviato a it.comp.lang.visual-basic" martedì 16 
dicembre 1997


sperando che non ve lo rivendiate come farina 
del vostro sacco!


Public Function 
PasquaGregoriana(anno%) As Date
  a% = anno% Mod 19
  b% = anno% 
\ 100: c% = anno% Mod 100
  d% = b% \ 4: e% = b% Mod 4
  f% = 
(b% + 8) \ 25
  g% = (b% - f% + 1) \ 3
  h% = (19 * a% + b - d - 
g + 15) Mod 30
  i% = c% \ 4: k% = c% Mod 4
  l% = (32 + e% + e% 
+ i% + i% - h% - k%) Mod 7
  m% = (a% + 11 * h% + 22 * l%) \ 
451
  m1% = (h% + l% - 7 * m% + 114)
  mese% = m1% \ 31: giorno% 
= (m1% Mod 31) + 1
  PasquaGregoriana = DateSerial(anno%, mese%, 
giorno%)
End Function
  


 


Oppure, se volete visualizzare 
correttamente date inferiori al 1º gennaio 1900, dato che DateSerial 
restituirebbe valori negativi:


 


Public Function PasquaGregorianaStringa$(anno%)
  Dim 
strMese$(12)
  strMese$(1) = "gennaio": strMese$(2) = 
"febbraio": strMese$(3) = "marzo"
  strMese$(4) = 
"aprile":  strMese$(5) = "": strMese$(6) = 
"giugno"
  strMese$(7) = "luglio": strMese$(8) = 
"agosto": strMese$(9) = "settembre"
  strMese$(10) = 
"ottobre": strMese$(11) = "": strMese$(12) = 
"dicembre"
  a% = anno% Mod 19
  b% = anno% \ 100: c% 
= anno% Mod 100
  d% = b% \ 4: e% = b% Mod 4
  f% = (b% + 8) \ 
25
  g% = (b% - f% + 1) \ 3
  h% = (19 * a% + b - d - g + 15) 
Mod 30
  i% = c% \ 4: k% = c% Mod 4
  l% = (32 + e% + e% + i% + 
i% - h% - k%) Mod 7
  m% = (a% + 11 * h% + 22 * l%) \ 451
  m1% 
= (h% + l% - 7 * m% + 114)
  mese% = m1% \ 31: giorno% = (m1% Mod 31) + 
1
  PasquaGregorianaStringa$ = CStr(giorno%) & " " & 
strMese$(mese%) & " " & CStr(anno%)
End 
Function
 


Ho verificato l'algoritmo (so che non è ottimizzato 
né personalizzato per i vostri comodi, mica farete fare tutto a me!) e 
funziona correttamente per i citati anni "limite" 1818, 2285, 1886, 
1943 e 2038, e anche per il 1997, per gli altri anni non so dove verificare ma, 
visto l'autore ed il peso del libro ove l'ho trovato, voglio fidarmi 
dell'algoritmo.


 


-- 
G.Paolo Bizzaro - 
g...@rsadvnet.NOSPAM.it



A chi lo dovrebbe vendere? Io lo conosco ma non ho trovato acquirenti :-)
	Era una battuta... ma penso che se all'algoritmo ci metti
sopra un po' do software che generi particolari calendari o, che ne
so,  abbinnato a qualche nozione di astronomia, qualcosa di carino
può' saltar fuori. No?
Ciao
Lucio
mailto:
lu...@mywebpages.com
---------------------------