epochseconds in Jahre,Monate,Wochen.. umrechnen ohne Date::Calc
Franko
- perl
0 n.d. parker0 Mikki0 Franko
Hi,
nachdem ich die Differenz zweier Daten errechnet habe, möchte ich nun gerne wieder daraus (aus diesen epochseconds) Jahre, Monate, Wochen, Tage, Stunden, Minuten, Sekunden errechnen, allerdings ohne Date::Calc, weil ich diese Möglichkeit leider nicht nutzen kann :-((
Wie kann ich das machen?
Danke für Hilfe.
Franko
Moin,
ohne Date::Calc, weil ich diese Möglichkeit leider nicht nutzen kann :-((
einfachste Moeglichkeit: lad dir Date::Calc runter, guck in den Code, wie die das gemacht haben, kopiere es in dein Programm oder programmiere es nach.
Viele Gruesse,
n.d.p.
Hi,
nachdem ich die Differenz zweier Daten errechnet habe, möchte ich nun gerne wieder daraus (aus diesen epochseconds) Jahre, Monate, Wochen, Tage, Stunden, Minuten, Sekunden errechnen, allerdings ohne Date::Calc, weil ich diese Möglichkeit leider nicht nutzen kann :-((
Wie kann ich das machen?
Danke für Hilfe.
Franko
Hi Franko,
nimm diese Subroutine:
sub zeitumrechner {
$_ = shift;
##################################################
#Jahre rausziehen
if ($_ > 31536000) {
$Jahre = int($_/31536000);
$_ = $_-($Jahre*31536000);
} # End if ($_ > 31536000)
##################################################
#Monate rausziehen
if ($_ > 2635200) {
$Monate = int($_/2635200);
$_ = $_-($Monate*2635200);
} # End if ($_ > 2635200)
##################################################
#Wochen rausziehen
if ($_ > 604800) {
$Wochen = int($_/604800);
$_ = $_-($Wochen*604800);
} # End if ($_ > 604800)
##################################################
#Tage rausziehen
if ($_ > 86400) {
$Tage = int($_/86400);
$_ = $_-($Tage*86400);
} # End if ($_ > 86400)
##################################################
#Stunden rausziehen
if ($_ > 3600) {
$Stunden = int($_/3600);
$_ = $_-($Stunden*3600);
} # End if ($_ > 3600)
##################################################
#Minuten rausziehen
if ($_ > 60) {
$Minuten = int($_/60);
$_ = $_-($Minuten*60);
} # End if ($_ > 60)
##################################################
#Sekunden bleiben übrig
$Sekunden = $_;
if ($Jahre < 1) { $Jahre = ""; } elsif ($Jahre == 1) { $Jahre = "1 Jahr,"; } else { $Jahre = "$Jahre Jahre,"; }
if ($Monate < 1) { $Monate = ""; } elsif ($Monate == 1) { $Monate = "1 Monat,"; } else { $Monate = "$Monate Monate,"; }
if ($Wochen < 1) { $Wochen = ""; } elsif ($Wochen == 1) { $Wochen = "1 Woche,"; } else { $Wochen = "$Wochen Wochen,"; }
if ($Tage < 1) { $Tage = ""; } elsif ($Tage == 1) { $Tage = "1 Tag,"; } else { $Tage = "$Tage Tage,"; }
if ($Stunden < 1) { $Stunden = ""; } elsif ($Stunden == 1) { $Stunden = "1 Stunde,"; } else { $Stunden = "$Stunden Stunden,"; }
if ($Minuten < 1) { $Minuten = ""; } elsif ($Minuten == 1) { $Minuten = "1 Minute,"; } else { $Minuten = "$Minuten Minuten,"; }
if ($Sekunden < 1) { $Sekunden = ""; } elsif ($Sekunden == 1) { $Sekunden = "1 Sekunde"; } else { $Sekunden = "$Sekunden Sekunden"; }
$ZEIT = "$Jahre $Monate $Wochen $Tage $Stunden $Minuten $Sekunden";
return $ZEIT;
} # End SR
'Werde bei Gelegenheit mal 'ne elegantere Singular-Plurallösung einbauen :-))
Grüße
Mikki
Hi,
nachdem ich die Differenz zweier Daten errechnet habe, möchte ich nun gerne wieder daraus (aus diesen epochseconds) Jahre, Monate, Wochen, Tage, Stunden, Minuten, Sekunden errechnen, allerdings ohne Date::Calc, weil ich diese Möglichkeit leider nicht nutzen kann :-((
Wie kann ich das machen?
Danke für Hilfe.
Franko
Hi Franko,
nimm diese Subroutine:
sub zeitumrechner {
This subroutine was written by Mikki (www.login-computer.de)
mikki@login-computer.de
Feel free to use it in your scripts
$_ = shift;
##################################################
#Jahre rausziehen
if ($_ > 31536000) {
$Jahre = int($_/31536000);
$_ = $_-($Jahre*31536000);
} # End if ($_ > 31536000)
##################################################
#Monate rausziehen
if ($_ > 2635200) {
$Monate = int($_/2635200);
$_ = $_-($Monate*2635200);
} # End if ($_ > 2635200)
##################################################
#Wochen rausziehen
if ($_ > 604800) {
$Wochen = int($_/604800);
$_ = $_-($Wochen*604800);
} # End if ($_ > 604800)
##################################################
#Tage rausziehen
if ($_ > 86400) {
$Tage = int($_/86400);
$_ = $_-($Tage*86400);
} # End if ($_ > 86400)
##################################################
#Stunden rausziehen
if ($_ > 3600) {
$Stunden = int($_/3600);
$_ = $_-($Stunden*3600);
} # End if ($_ > 3600)
##################################################
#Minuten rausziehen
if ($_ > 60) {
$Minuten = int($_/60);
$_ = $_-($Minuten*60);
} # End if ($_ > 60)
##################################################
#Sekunden bleiben übrig
$Sekunden = $_;
if ($Jahre < 1) { $Jahre = ""; } elsif ($Jahre == 1) { $Jahre = "1 Jahr,"; } else { $Jahre = "$Jahre Jahre,"; }
if ($Monate < 1) { $Monate = ""; } elsif ($Monate == 1) { $Monate = "1 Monat,"; } else { $Monate = "$Monate Monate,"; }
if ($Wochen < 1) { $Wochen = ""; } elsif ($Wochen == 1) { $Wochen = "1 Woche,"; } else { $Wochen = "$Wochen Wochen,"; }
if ($Tage < 1) { $Tage = ""; } elsif ($Tage == 1) { $Tage = "1 Tag,"; } else { $Tage = "$Tage Tage,"; }
if ($Stunden < 1) { $Stunden = ""; } elsif ($Stunden == 1) { $Stunden = "1 Stunde,"; } else { $Stunden = "$Stunden Stunden,"; }
if ($Minuten < 1) { $Minuten = ""; } elsif ($Minuten == 1) { $Minuten = "1 Minute,"; } else { $Minuten = "$Minuten Minuten,"; }
if ($Sekunden < 1) { $Sekunden = ""; } elsif ($Sekunden == 1) { $Sekunden = "1 Sekunde"; } else { $Sekunden = "$Sekunden Sekunden"; }
$ZEIT = "$Jahre $Monate $Wochen $Tage $Stunden $Minuten $Sekunden";
return $ZEIT;
} # End SR
'Werde bei Gelegenheit mal 'ne elegantere Singular-Plurallösung einbauen :-))
Grüße
Mikki
Hi Mikki,
wow, genau sowas hab ich gesucht, danke!
Franko