Calcolo Giorno di Pasqua in PHP

Codice in linguaggio PHP per il calcolo della data di Pasqua, utile per trovare la data del lunedì dell'Angelo.

In molti progetti gestionali o calendari digitali può essere utile calcolare automaticamente il giorno della Pasqua, che varia ogni anno. Questo articolo presenta un codice PHP semplice e funzionante, pensato per chi vuole integrare questa funzione nel proprio sito web senza dipendere da librerie esterne.

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;
  }
}

Breve storia del calcolo della Pasqua

La determinazione della data della Pasqua cristiana ha origini antiche e complesse. Già nel IV secolo, il Concilio di Nicea (325 d.C.) stabilì che la Pasqua dovesse essere celebrata la prima domenica dopo il primo plenilunio successivo all’equinozio di primavera, fissato convenzionalmente al 21 marzo.
Sebbene il criterio si basi su eventi astronomici, nel tempo è stato tradotto in formule matematiche che consentono di calcolare la data della Pasqua in modo automatico. Nel corso dei secoli, studiosi hanno proposto diversi algoritmi. Tra questi, Carl Friedrich Gauss ha ideato una soluzione elegante e precisa. Il suo metodo è tuttora valido per il calendario gregoriano.
Il codice PHP presentato in questo articolo si basa proprio su una variante moderna dell’algoritmo di Gauss, adattata per essere facilmente integrata in applicazioni web e gestionali.

Giampaolo Rossi
Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.

Articoli: 324

Un commento

  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 una risposta

Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.