Hallo liebes Forum!
Der Titel sagt ja schon was ich machen will, hier ist mein Ansatz:
Das was da auskommentiert ist war ein anderer ansatz von mir, dann müsste das $geburtstag += wegfallen, aber irgendwie funktoinieren beide Ansätze nicht so richtig. Wenn man das Testdatum in 08.11.1970 ändert, ist man angeblich immernoch 36. Obwohl man erst morgen 36 werden dürfte.
Ich steig da momentan irgendwie nich hinter den Logikfehler den ich offensichtlich mache. Hat von euch vielleicht jemand ne Idee? Danke schonmal im Voraus!
Der Titel sagt ja schon was ich machen will, hier ist mein Ansatz:
PHP-Code:
<?php
function schaltjahr($jahr) {
if ($jahr % 400 == 0) {
return true;
}
elseif ($jahr % 4 == 0 && $jahr % 100 != 0) {
return true;
}
else {
return false;
}
}
function anzahlschaltjahre($von, $bis) {
$j = 0;
for ($i = $von; $i <= $bis; $i++) {
if (schaltjahr($i)) $j++;
}
return $j;
}
function alter($tag, $monat, $jahr) {
$jetzt = mktime(0,0,0,date("m"),date("d"),date("Y"));
$geburtstag = mktime(0,0,0,$monat,$tag,$jahr);
$geburtstag += (24 * 3600 * 366) * anzahlschaltjahre(jahr, date("Y"));
/* $altersek = (3600 * 24 * 365);
$altersek -= (3600 * 24 * 365) * anzahlschaltjahre(jahr, date("Y"));
$altersek += (3600 * 24 * 366) * anzahlschaltjahre(jahr, date("Y")); */
$alter = intval(($jetzt - $geburtstag) / (3600 * 24 * 365));
return $alter;
}
$geburtstag = "07.11.1970";
$altersmeta = explode(".",$geburtstag);
echo "Du bist " . alter($altersmeta[0],$altersmeta[1],$altersmeta[2]) . " Jahre alt!";
echo "<br>Schaltjahre in der Zeit: " . anzahlschaltjahre($altersmeta[2], date("Y"));
?>
Ich steig da momentan irgendwie nich hinter den Logikfehler den ich offensichtlich mache. Hat von euch vielleicht jemand ne Idee? Danke schonmal im Voraus!
Kommentar