[Linguaggio C] Calcolo del giorno di pasqua
Giovanni
| Argomenti: linguaggio C, date, pasqua, funzioni | 3471
Quante volte, dovendo controllare se una giornata é festiva o meno, abbiamo avuto la necessità di calcolare il giorno in cui cade la pasqua in un determinato anno.
Questa breve funzione scritta in linguaggio C permette di calcolare il giorno della Pasqua cristiana. Passatogli l’anno di cui vogliamo sapere in che giorno cade la pasqua, vengono ritornati giorno e mese.
// // FUNZIONE CHE CALCOLA LA PASQUA // void pasqua(short aa, short *mm, short *gg) { short gm[] = {22, 22, 23, 23, 24, 24}; short da[] = {2, 2, 3, 4, 5, 5}; short a, b, c, d, e, i;a = aa % 19; b = aa % 4; c = aa % 7; i = (int) (aa / 100) - 15; d = (19 * a + gm[i]) % 30; e = (2 * b + 4 * c + 6 * d + da[i]) % 7; *gg = 22 + d + e; *mm = 3; if (*gg > 31) { *mm = 4; *gg -= 31; } }
Ed ecco un breve esempio autoesplicativo della chiamata:
{ short giorno, mese, anno = 2006; pasqua(anno, &mese, &giorno); printf("Pasqua %d cade il giorno %d del mese %dn", anno, giorno, mese); }
Pubblicato in Funzioni e classi PHP e C |
26 Maggio 2006 alle 11:24
Molto interessante!
9 Novembre 2006 alle 07:56
[...] Dopo aver pubblicato la funzione di calcolo della Pasqua in linguaggio C, ecco la stessa funzione per il PHP, così che potrete calcolare il giorno della Pasqua cristiana. Passatogli l’anno di cui vogliamo sapere in che giorno cade la pasqua, vengono ritornati giorno e mese. // // FUNZIONE CHE CALCOLA LA PASQUA // function pasqua($aa, & $mm, & $gg) { $gm = Array(22, 22, 23, 23, 24, 24); $da = Array(2, 2, 3, 4, 5, 5); $a = $aa % 19; $b = $aa % 4; $c = $aa % 7; $i = floor($aa / 100) - 15; $d = (19 * $a + $gm[$i]) % 30; $e = (2 * $b + 4 * $c + 6 * $d + $da[$i]) % 7; $gg = 22 + $d + $e; $mm = 3; if ($gg > 31) { $mm = 4; $gg -= 31; } } [...]