Franko: epochseconds in Jahre,Monate,Wochen.. umrechnen ohne Date::Calc

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

  1. 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.

  2. 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

    1. 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