Un enunt adaptat pe baza unei teme de practica individuala din cadrul unui curs de PHP procedural, predat la InfoAcademy Bucuresti.
// Se genereaza in mod aleator o data de nastere. Pentru simplificare, luna generata va fi ianuarie sau februarie.
// Se va incerca generarea zilei in intervalul corect (1-31 pentru ianuarie, 1-28 sau 1-29 pentru februarie, in functie de an).
// Se va afisa un tabel HTML cu: data generata, anul (bisect sau ordinar), zodia.
Algoritmul pentru testarea unui an (bisect/ordinar), aici.
O lista a anilor bisecti care acopera si intervalul utilizat in acest exemplu, aici.
Functia Generator() apeleaza functia is_leap($y) pentru testul numarului (pseudo)aleator care reprezinta anul. In functie de test si de valoare numerica a lunii este apoi generata ziua.
O bucla for apeleaza de 10 ori functia Generator() pentru afisarea celor 10 intrari in tabelul html.
Pe sistemul pe care s-a facut testul, codul nu este rezident in folderul www ci intr-un alias setat corespunzator.
Codul si prinscreen-ul:
// Se genereaza in mod aleator o data de nastere. Pentru simplificare, luna generata va fi ianuarie sau februarie.
// Se va incerca generarea zilei in intervalul corect (1-31 pentru ianuarie, 1-28 sau 1-29 pentru februarie, in functie de an).
// Se va afisa un tabel HTML cu: data generata, anul (bisect sau ordinar), zodia.
Algoritmul pentru testarea unui an (bisect/ordinar), aici.
O lista a anilor bisecti care acopera si intervalul utilizat in acest exemplu, aici.
Functia Generator() apeleaza functia is_leap($y) pentru testul numarului (pseudo)aleator care reprezinta anul. In functie de test si de valoare numerica a lunii este apoi generata ziua.
O bucla for apeleaza de 10 ori functia Generator() pentru afisarea celor 10 intrari in tabelul html.
Pe sistemul pe care s-a facut testul, codul nu este rezident in folderul www ci intr-un alias setat corespunzator.
Codul si prinscreen-ul:
<!DOCTYPE HTML>
<html>
<head><title>BD
generator</title></head>
<body style =
"background-color:Aquamarine;color:DarkOrchid">
<table border = "1", style =
"width:40%">
<tr><td>Data
nasterii</td><td> Anul </td><td> Zodia
</td></tr>
<?php
function is_leap($y)
{
if($y%4)
return 0;
else
if($y%100) return 1;
else
if($y%400) return 0;
else
return 1;
}
function Generator()
{
$yr
= rand(1940, 2015);
$m
= rand(1,2);
$leap
= 0;
if(is_leap($yr))
{
$leap
= "bisect";
if($m
== 2) $d = rand(1,29);
else
$d = rand(1,31);
}
else
{
$leap
= "ordinar";
if($m
== 2) $d = rand(1,28);
else
$d = rand(1,31);
}
$zodie
= 0;
if($m
== 1) $zodie = ($d <= 19)? "Capricorn" : "Varsator";
else
$zodie = ($d <= 18)? "Varsator" : "Pesti";
echo
"<tr><td>$d.$m.$yr</td><td> $leap
</td><td> $zodie </d></tr>";
}
for($i = 0; $i <= 9; $i++) Generator();
?>
</table>
</body>
</html>
No comments:
Post a Comment