Dieser Subroutinenaufruf empfängt in dem Abschnitt ($week,$day,$hour,$minute,$sec) die Werte die vom
return ($week,$day,$hour,$minute,$sec); zurückgeliefert werden. Mit &umrechnen($zeit_sec);
Wird die Subroutine aufgerufen und der Wert $zeit_sec übergeben.
($week,$day,$hour,$minute,$sec) = &umrechnen($zeit_sec);
Hier passiert das selbe nocheinmal, nur diemal für die Werte ob Woche - Wochen bzw. Tag - Tage angezeigt werden sollen.
($woche,$tag) = &plural($week,$day);
In dieser print Ausgabe werden nun die Werte ausgegeben.
print "$week $woche, $day $tag, und $hour:$minute:$sec Stunden";
Die nun folgende Subroutine empfängt in ($week,$day) = @_; Die übergebenen Werte.
Nun folgen zwei if-else Abfragen die je nach Anzahl der ermittelten Wochen oder Tage den entsprechenden Einzahl oder Mehrzahlwert zurückgeben bei
return ($woche,$tag); Diese Subroutine kann man auch leicht für andere Zwecke umbauen. So z.B. für Ein Gästebuch
oder Forum in dem die Eintragsanzahl angepasst dargestellt werden soll. So könnte dann ausgegeben werden: "Das Gästebuch hat 1 Eintrag" - oder - "Das Gästebuch hat 2 Einträge".
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Einzahl oder Mehrzahl? (Woche-Wochen, oder Tag-Tage)
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub plural {
($week,$day) = @_;
if ($week == 1) {
$woche = "Woche";
} else {
$woche = "Wochen";
}
if ($day == 1) {
$tag = "Tag";
} else {
$tag = "Tage";
}
return ($woche,$tag);
}
Diee Subroutine erledigt nun mittels einer Modulo(Rest) Rechnung und Division die Aufgabe des umrechnens von Sekunden in die Wochen, Tage, Stunden, Minuten und Sekunden.
Am Schluss werden dann wieder per return ($week,$day,$hour,$minute,$sec); die Ergebnisse zurückgeliefert.
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Sekunden zu Zeitangabe umrechnen
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub umrechnen {
($zeit_sec) = @_;
$sec = $zeit_sec % 60;
$zeit_sec = ($zeit_sec - $sec) / 60;
$minute = $zeit_sec % 60;
$zeit_sec = ($zeit_sec - $minute) / 60;
$hour = $zeit_sec % 24;
$zeit_sec = ($zeit_sec - $hour) / 24;
$day = $zeit_sec % 7;
$week = ($zeit_sec - $day) / 7;
return ($week,$day,$hour,$minute,$sec);
}
|