mercoledì 8 giugno 2011

Pasqua

Pagina HTML
<html>
 <head>
  <title>Calcolo dei giorni della Pasqua Cristiana</title>
 </head>
 <body>
  <h2><center>Digitare gli anni per calcolare la Pasqua</center></h2>
  <form action="pasqua_2.php" method="POST">
  1<sup>o</sup> anno: <input name="anno1"><br>
  2<sup>o</sup> anno: <input name="anno2"><br>
  <input type="submit" value="Invia">
  <input type="reset" value="Cancella">
  </form>
  </center>
 </body>
</html>

Pagina PHP
<html>
 <head>
  <title>Calcolo dei giorni relativi alla Pasqua Cristiana</title>
 </head>
 <body>
  <?php
   // Inizializzazione delle variabili
   $anno1=$_POST['anno1'];
   $anno2=$_POST['anno2'];
   /* Controllo che $anno1 e $anno2 >= 1583 e <= 8202
   e che siano interi */
   if ($anno1-floor($anno1)==0 && $anno2>=1583 && $anno1<=8202 &&
   $anno2<=8202) {
   // Scambio se $anno1 > $anno2
   if ($anno1 > $anno2) {
    $tr=$anno1;
    $anno1=$anno2;
    $anno2=$tr;
   }
  
   // Intestazione della tabella
   echo "<h2><center>Giorni della Pasqua da $anno1 a $anno2
    </center></h2>";
   echo "<table border='1' align='center'>
    <tr>
     <td>Giorno</td>
     <td>Mese</td>
     <td>Anno</td>
    </tr>";
   // Calcolo deì giorni della Pasuqa con il ciclo FOR
   for ($A=$anno1;$A<=$anno2;$A++) {
    // Calcolo di $d
    $d=((15 + floor($A/100) - floor($A/400) - (8 * floor($A/100) + 13) / 25) % 30 +
       19 * ($A % 19)) % 30;
  
    // Calcolo di $D in funzione di $d
    if ($d==29) $D=28;
    else if ($d==28 && $A%17>=11) $D=27;
    else $D=$d;
   
    // Calcolo di $e
    $e = (2 * ($A % 4) + 4 * ($A % 7) + 6 * $D + (6 + floor($A/100) - floor($A/400) - 2) % 7) % 7;
    // Calcolo di $pasqua
    $pasqua = $e + $D + 1 + 21; $mese="Marzo";
    // Se $pasqua > 31 allora $mese="Aprile"
    if ($pasqua > 31) {
       $mese="Aprile";
       $pasqua=$pasqua-31;
    }
    echo "<tr><td>$pasqua</td><td>$mese</td><td>$A</td></tr>";
   }
   echo "</table>";
     }
     else echo "ERRORE!!!";
  ?>
 </body>
</html>

Nessun commento:

Posta un commento