Pagine

mercoledì 1 giugno 2011

Pasqua

Parte 1:
<html>
 <head>
  <title>Calcolo del giorno della pasqua</title>
 </head>
 <body>
  <center>
  <h2>Digitare due numeri interi positivi</h2>
  <form action ="pasqua.php" method="POST">
   1<sup>o</sup> anno: <input name="anno1"><br>
   2<sup>o</sup> anno: <input name="anno2"><p>
   <input type="submit" value="invia">
   <input type="reset" value="cancella">
  </form>
  </center>
 </body>
</html>
Parte 2:
<html>
 <head>
  <title>Calcolo del giorno della pasqua</title>
 </head>
 <body>
 <?php
 //Inizzializzazione delle variabili
 $anno1=$_POST['anno1']; $anno2=$_POST['anno2'];
 //Controllo che $anno1 e $anno2 siano interi e >= di 1583 e <=8202
 if ($anno1-floor($anno1)==0 and $anno2- floor($anno2)==0 and $anno1 >= 1583 and $anno2 >= 1583 and      $anno1<=8202 and $anno2<=8202){
  //Se $anno1 > $anno2 scambio
  if ($anno1 > $anno2){
   $transito=$anno1;
   $anno1=$anno2;
   $anno2=$transito;
  }

  //Ciclo di iterazione 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
   if ($d==29) $D=28;
   else if ($d==28 and $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 del giorno della pasqua
   $pasqua=21+$e+$D+1;
   $mese="Marzo";
   if($pasqua>31) {
   $mese="Aprile";
   $pasqua=$pasqua - 31;
   }
   echo "$pasqua $mese $A <br>";
  }
 }

 else echo "ERRORE!!! Ridigitare........."
 ?>
 </body>
</html>

Nessun commento:

Posta un commento