Announcement

Collapse
No announcement yet.

Perl Datum ändern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Perl Datum ändern

    Daniel35|vor 13 Minuten


    Hallo,

    ich hab folgendes Perl Script und komm nicht weiter. Hoffe mir kann jemand weiterhelfen.

    Code:
    !usr/bin/perl
    
    use Time::Localtime;
    
    $a=0; print"Geben Sie +1 oder -1 ein\n"; $a = ;
    
    $x = time;
    
    if($a == +1) {$b = $x+86400;}
    
    elsif($a == -1) {$b = $x-86400;}
    
    else { print "Falsche Eingabe\n";}
    
    ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat, $Jahr, $Wochentag, $Jahrestag) = localtime($b); $Jahr += 1900; $Monat += 1;
    
    print "Datum: $Jahr-$Monat-$Monatstag $Stunden:$Minuten:$Sekunden ($Wochentag, $Jahrestag)\n";
    Das Skript gibt den +1/-1 Datum und Uhrzeit aus. Möchte aber, dass es mehrere Tage ändert und evtl. auch nur Stundenweise ändert. Danke!!

    Gruß Dani

  • #2
    Was ist die Frage? Die Menüauswahl?
    Wo ist das Problem für mehrere Tage
    $x+86400

    zu ändern?

    Was ist unter "evtl" zu verstehen?
    Christian

    Comment


    • #3
      Hilft dir dieses Modul weiter: Date::Calc

      Gruss

      Comment


      • #4
        Hallo,

        @Christian: Also meine Frage ist: Mit welcher Schleife kann ich das Skript so regeln, dass ich z.b anstatt +1,(+2,+3,+4,+5,..) eingebe und es rechnet mir dann vom aktuellem Datum 02.08 +5 Tage, also sollte es mir den 07.08 ausgeben! Und unter evtl. zu verstehen wäre, ich möchte dieselbe Funktion anstatt Tage mit Stunden, z.B. Es ist 17Uhr und gebe +5 Stunden ein, soll es mir 22Uhr ausgeben.
        Hoffe ich konnt mich klar ausdrücken. Bin noch neu in dem Geschäft.

        @Wernfried: Hab ich auch schon versucht, aber komm mit der Funktion nicht weiter. Da wäre der Add_Delta_Day am besten, aber wie gesagt weiß nicht wie man es schreibt.

        Danke nochmals
        Gruss Dani

        Comment


        • #5
          Schleifen in PERL
          for($i = 0; $i <5; $i++)

          um ggf. eine Ausgabe hintereinander zu realisieren.

          Sofern du das in einer Eingabe machen willst, ist eine do-until Schleife
          um die Eingabe zu legen und eine Abruchtaste (bsp. 0) zu definieren. Dann sind
          entsprechende if Abfrage zu schreiben.

          Wenn

          $x+86400

          die Addition für einen Tag ist, dann dürfte

          $x+(86400*tage)

          die Addtion für mehrere Tage ergeben


          Um das mit anderen Datumsteilen zu machen ist

          60 Sek = 1 Minute
          60 Min = 1 Stunde
          24 Std = 1 Tag

          60x60x24=86400

          Somit dürfte ersichtlich sein, welchen Teil des Wertes du ggf. erhöhen oder mindern
          musst, um die Berechnung auf einen anderen Zeitteil zu beziehen.

          Für das calc-Modul sind Beispiele auf der Seite
          Christian

          Comment

          Working...
          X