Hi,
auszuschließen muß ich ‚ne Menge if-Schleifen durchlaufen.
If-Schleifen? *g* cooler Ausdruck *g*
Also, gibt es innerhalb von Perl eine Funktion, die mir aus
$monat, $tag, $stunde, $minute eine einzelne Zeitangabe - wie zum
Beispiel die Ausgabe von time() (Sekunden seit dem 1.1. 1970)
macht?
eine Fkt nicht, dass ich wuesste... ist auch nicht moeglich, da die
Angabe zur Jahreszahl fehlt. Was du aber machen kannst, ist, dass
ganze in Sek (oder auch MSek) seit Anfang des Jahres umzurechnen. Das
geht so:
sub min_seit_jan
{
my $monat = shift @_;
my $tag = shift @_;
my $stunde = shift @_;
my $min = shift @_;
my $zeit = 0;
Tage seit Monats-Anfang ausrechnen
for($i=0;$i<=$monat-1;$i++)
{
# Hat der Monat 31 oder 30 Tage?
if($i % 2 != 0)
{
$zeit += 31;
} else {
# ist der aktuelle Monat Februar? Ja -> +28 Tage, nein -> +30 Tage
$zeit += $i == 2 ? 28 : 30;
}
}
Tage des aktuellen Monats hinzufuegen
$zeit += $tag;
umrechnen in Stunden und Stunden des aktuellen Tags addieren
$zeit *= 24 + $stunde;
umrechnen in Minuten und Minuten seit Anfang der Stunde addieren
$zeit *= 60 + $minute;
return $zeit;
}
Aufgerufen wird das ganze ueber
$zeit = &min_seit_jan($monat, $tag, $stunde, $minute);
Jetzt hast du die Minuten seit Anfang des Jahres...
mfg
CK1