Es geht auch mit Javascript, also braucht es nicht zwingend eine serverseitige Sprache. Allerdings müsstest Du dann jedesmal, wenn ein neues Mitglied dazukommt oder eines weggeht, die Seite ändern. Hier ein Beispiel-Javascript:
CODE <script type="text/javascript">
<!--
var Mitglieder=new Array();
Mitglieder[0] = new Array();
Mitglieder[0]["Name"] = "Hans";
Mitglieder[0]["GebDatum"] = new Date(1982, 11, 24); // Jahr, Monat, Tag
Mitglieder[0]["GebJahr"] = 1982;
Mitglieder[0]["GebMonat"] = 11;
Mitglieder[0]["GebTag"] = 24;
Mitglieder[1] = new Array();
Mitglieder[1]["Name"] = "Anna";
Mitglieder[1]["GebDatum"] = new Date(1985, 4, 22);
Mitglieder[1]["GebJahr"] = 1985;
Mitglieder[1]["GebMonat"] = 4;
Mitglieder[1]["GebTag"] = 22;
Mitglieder[2] = new Array();
Mitglieder[2]["Name"] = "Peter";
Mitglieder[2]["GebDatum"] = new Date(1988, 12, 23);
Mitglieder[2]["GebJahr"] = 1988;
Mitglieder[2]["GebMonat"] = 12;
Mitglieder[2]["GebTag"] = 23;
var sName = "";
var dNow = new Date();
var dNext = new Date();
var dLast = new Date(2020, 1, 1);
for (var i=0;i<Mitglieder.length;i++) {
document.write("<dl><dt>Mitglieder "+(i+1)+"<\/dt>");
for (var Eigenschaft in Mitglieder[i]){
document.write("<dd>"+ Eigenschaft + ": "+Mitglieder[i][Eigenschaft]+"<\/dd>");
}
// Geb. im aktuellen Jahr
dNext = new Date(dNow.getFullYear(), Mitglieder[i]["GebMonat"], Mitglieder[i]["GebTag"]);
if(dNext<dNow){
// aktueller Geburtstag ist vorbei, nächsten ermitteln
dNext = new Date(dNow.getFullYear()+1, Mitglieder[i]["GebMonat"], Mitglieder[i]["GebTag"]);
}
document.write("<dd>Nächster Geburtstag: " + dNext + "<\/dd>");
// prüfen, ob dieser Geburtstag näher ist als der des vorherigen Mitglieds
if(dNext<dLast){
sName = Mitglieder[i]["Name"];
dLast = dNext;
}
document.write("<\/dl>");
}
document.write("Der nächste Geburtstag ist am " + dLast + " und es ist " + sName);
//-->
</script>
Das müsste man natürlich noch versäubern ;-)
Griessli
Irene