Newsgroup: it.comp.lang.delphi
Titolo: Paqua cristiana

Salve,
qualcuno sa se esiste una funzione per calcolare la pasqua cristiana. Ne ho 
trovata una in php ma volevo, prima di riportarla sul mio codice in delphi, 
vedere se già esiste qualcosa in merito.
Grazie 

Semplice semplice (in origine si usava con la calcolatrice quindi puoi 
ottimizzarla come ti pare)
Nota: Inserisci l'anno e ti ritorna il mese ed il giorno
Procedure Data_Di_Pasqua(    Anno   : Integer;
                          Var Mese   : Integer;
                          Var Giorno : Integer);
Var
   a, b, c, d, e, f, g, h, i, k, l, m, n, p : Integer;
Begin
   A := Anno               Mod  19;
   B := Anno               Div 100;
   C := Anno               Mod 100;
   D := B                  Div   4;
   E := B                  Mod   4;
   F := (B+8)              Div  25;
   G := (B-F+1)            Div   3;
   H := (19*A+B-D-G+15)    Mod  30;
   I := C                  Div   4;
   K := C                  Mod   4;
   L := (32+2*E+2*I-H-K)   Mod   7;
   M := (A+11*H+22*L)      Div 451;
   N := (H+L-7*M+114)      Div  31;
   P := (H+L-7*M+114)      Mod  31;
   Giorno := P+1;
   Mese   := N;
End;
Ciao,
David

 ottimizzarla come ti pare)
Mi piacerebbe davvero sapere il ragionamento logico che c'è dietro a 
questi assurdi calcoli :)
-- 
Jax

Jax ha scritto:


Dicesi "Metodo di Gauss":
http://xoomer.alice.it/esongi/gauss.htm
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 questi assurdi calcoli :)
Più che logico è astronomico, ed è stato un annoso problema nei secoli 
scorsi. Prova a gugolare con "astronomical algorithms" o simile, 
dovresti trovare diverse pubblicazioni o notizie direttamente in rete.
-- 
news:it-alt.comp.software.openoffice : Il newsgroup dedicato a
OpenOffice.org, la suite open source di applicazioni per ufficio.
Saluti, VITRIOL

 
http://xoomer.alice.it/esongi/gauss.htm
Che spettacolo. Ma non dirmi che l'ha inventato proprio Gauss... stica, 
penso che se fosse vivo il mondo sarebbe migliore.
-- 
Jax

Se ti vinteressa io dovrei avere, da qualche parte, tutte le pasque
calcolate (in clipper) fino al 2100.
Ci sono 2 o 3 anni che danno problemi in quanto la luna nuova č vicino al 21
marzo.
Ciao
Mario - (
mari...@inwind.it
)
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

[...]non dirmi che l'ha inventato proprio Gauss..
Sě, sě, č il metodo astronomico di Carl Friedrich Gauss.


Se ti interessa questa ed altre funzioni le ho estrapolate da 
"Astronomia pratica con l'uso del calcolatore tascabile" di Peter 
Duffett-Smith, edito Sansoni Studio (1983) che contiene, oltre agli 
algoritmi, anche le spiegazioni
Ciao,
David

 Salve,

//******************* Pasqua *************************
// Data: 02.06.2002
// Scopo: Calcola il giorno di Pasqua per un dato anno
// Modifiche:
// Note: Algoritmo recuperato su Internet
//********************************************************
function Pasqua (Anno: integer): TDateTime;
var
   nMoon, nEpact, nSunday, nGold, nCent, nCorx, nCorz: Integer;
   SystemTime : TSystemTime;
begin
   FillChar( SystemTime, Sizeof( SystemTime ), 0 );
   with SystemTime do
   begin
    wYear := Anno;
    nGold := ( ( wYear mod 19 ) + 1  );
    nCent := ( ( wYear div 100 ) + 1 );
    nCorx := ( ( 3 * nCent ) div 4 - 12 );
    nCorz := ( ( 8 * nCent + 5 ) div 25 - 5 );
    nSunday := ( ( 5 * wYear ) div 4 - nCorx - 10 );
    nEpact := ( ( 11 * nGold + 20 + nCorz - nCorx ) mod 30 );
    if ( nEpact < 0 ) then
       nEpact := nEpact + 30;
    if ( ( nEpact = 25 ) and ( nGold > 11 ) ) or ( nEpact = 24 ) then
       nEpact := nEpact + 1;
    nMoon := 44 - nEpact;
    if ( nMoon < 21 ) then
       nMoon := nMoon + 30;
    nMoon := ( nMoon + 7 - ( ( nSunday + nMoon ) mod 7 ) );
    if ( nMoon > 31 ) then
       begin
         wMonth := 4;
         wDay   := ( nMoon - 31 );
       end
    else
       begin
         wMonth := 3;
         wDay   := nMoon;
       end;
   end;
   Result :=  SystemTimeToDateTime(SystemTime);
end;
Ciao 
ACSH


Grazie per l'aiuto
era proprio quello che cercavo.
Alfio
"Microges" <microges_No@Spam_email.it> ha scritto nel messaggio 
news:ej9eo8$obn$1...@newsreader.mailgate.org...
