Codice Sorgente della Data di Pasqua in PHP

Ecco il codice sorgente in php per implementare in una pagina il calcolo del giorno della Pasqua Cristiana.
Se invece stavate cercando una pagina per calcolare la data della Pasqua in base all’anno vi consiglio questa pagina.

...
function CalcEaster($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;
   }
}

$easter = "";
$year = $_REQUEST['year'];
if (strlen($year) <= 0)
{
   $year = "";
}
else
{
  if (is_numeric($year))
  {
    $dp = "";
    $mp = "";
     
    CalcEaster($year, $mp, $dp);
    
    $easter = $dp;
    $easter .= " ";
  
    switch ($mp)
    {
    case 1:
      $easter .= "Gennaio ";
      break;
    case 2:
      $easter .= "Febbraio ";
      break;
    case 3:
      $easter .= "Marzo ";
      break;
    case 4:
      $easter .= "Aprile ";
      break;
    case 5:
      $easter .= "Maggio ";
      break;
    case 6:
      $easter .= "Giugno ";
      break;
    case 7:
      $easter .= "Luglio ";
      break;
    case 8:
      $easter .= "Agosto ";
      break;
    case 9:
      $easter .= "Settembre ";
      break;
    case 10:
       $easter .= "Ottobre ";
       break;
   case 11:
     $easter .= "Novembre ";
     break;
   case 12:
     $easter .= "Dicembre ";
     break;
   }
  
   $easter .= $year;
  }
}
...

Ricordo che il giorno della Pasqua Cristiana è la prima Domenica dopo il primo plenilunio dopo l’equinozio di primavera.

Una risposta a “Codice Sorgente della Data di Pasqua in PHP”

  1. Giampaolo sto usando questo algoritmo (tradotto in Basic AppGameKit di TheGamesCreator) per un’app di preghiere e novene da distribuire assolutamente gratis sul Play Store onde evitare che qualcuno possa pensare che ci voglia lucrare. Ti posso citare nei credit? Posso mettere anche il tuo sito web?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *