PHPBBIntegrare PHPBB PHPFunzioni PHP CFunzioni C EcologiaLa mia ecologia   Chi siamoChi è Senamion HomeHome page corner Il Web e l'ecologia

Senamion


Chi siamo:

Il web e l'ecologia, condividere il web e un momento di riflessione sullo stato dell'ecologia e sul suo futuro

Google

[Linguaggio C] Calcolo del giorno di pasqua

24 Maggio 2006 by Giovanni | Argomenti: , , , | 3472

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 |

2 Commenti a “[Linguaggio C] Calcolo del giorno di pasqua”

  1. info scrive:

    Molto interessante!

  2. » [PHP] Calcolo del giorno di pasqua - Senamion scrive:

    [...] 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;   }   } [...]

Scrivi un commento