BasicArtsStudios: Differenz zwischen 2 Zeitpunkten

Hallo zusammen

Ich wäre froh, wenn mir jemand von euch sagen könnte, wie ich die Differenz zweier Zeitpunnkte herausfinden kann (in Minuten)

Ich will nämlich in ner Datei n Datum speichern, und wenn der User mein Script ausführen lässt, liest dieses den Zeitpunkt aus der Datei und vergleicht es mit dem jetztigen Zeitpunkt. Sobald der Zeitpunkt in der Datei 10 Minuten älter ist als "jetzt", dann wird die Datei gelöscht.

Den Rest schaff ich selbst, muss nur wissen, wie man die Differenz berechnet. Das Ergebnis sollte in Minuten dargestellt werden.

Gruss und vielen Dank zum Voraus

  1. 你好 BasicArtsStudios,

    Ich wäre froh, wenn mir jemand von euch sagen könnte, wie ich die
    Differenz zweier Zeitpunnkte herausfinden kann (in Minuten)

    $time1 = time();
    sleep 60;
    $time2 = time();
    $difference = $time2 - $time1;
    $difference_in_minutes = $difference / 60;
    print "Differenz: $difference, Differenz in Minuten: $difference_in_minutes\n";

    再见,
     CK

    --
    Fortune: I can't drive 55.
    I'm looking forward to not being able to drive 65, either.
    http://wwwtech.de/
    1. hi,

      $time1 = time();
      sleep 60;
      $time2 = time();
      $difference = $time2 - $time1;
      $difference_in_minutes = $difference / 60;
      print "Differenz: $difference, Differenz in Minuten: $difference_in_minutes\n";

      ich würde das nicht mit sleep machen.
      eher so:
      my $alt = time();
      my $jetzt = $alt + 600;//zeit plus 600sekunden
      my ($jetzt_last);
      if ($jetzt_last <= $alt) {
      unlink $datei...//loesche datei
      my $eintragindiedatei = ($jetzt);//aktueller wert

      Gruss
      Alain

      1. 你好 Alain,

        ich würde das nicht mit sleep machen.

        Darum gings doch gar nicht ;-) Ich wollte nur etwas Zeit verstreichen
        lassen. Es ging nur darum, den Mechanismus klarzustellen.

        再见,
         CK

        --
        Zu wissen, was wir nicht wissen, ist die Quelle der Weisheit.
        http://wwwtech.de/
        1. Hi CK,

          Darum gings doch gar nicht ;-) Ich wollte nur etwas Zeit verstreichen
          lassen. Es ging nur darum, den Mechanismus klarzustellen.

          ja aber $time1 = time(); und $time2 = time(); ist ja sonst dasselbe
          und mit sleep wird das script einfach nur 60sekunden angehalten,was vermutlich nicht gerade erwünscht ist vom autor...und sonst,versteh ich Dein mechanismus nicht -> keine logik -> ;-)
          Er möchte ja einen alten wert aus einer datei auslesen und den wert mit dem aktuellen wert $time = time(); bzw. $jetzt = $time + 600; vergleichen...Habe selbst ein script,welches auf diese weise tadellos funktioniert.eine andere methode wäre:

          sub checkdir {
          my $jetzt = time();
          my $bis = $jetzt - 600||'';

          opendir(DIR, "$file_path")||die "cannot open $!";
          for (readdir(DIR)){
          my $entry = "$file_path/$_";#lese verzeichniss
          if ((-f "$entry") and ((stat($entry))[9] < $bis))#lösche alle dateien die älter sind als 600 sekunden.
          {
          unlink("$entry")||die "cannot loeschen $!";
          }
          }
          closedir(DIR)||die "cannot schliessen $!";
          }

          in diesem verzeichniss sollten ausschliesslich nur diese logdateien sein.

          Gruss
          Alain

          1. 你好 Alain,

            Darum gings doch gar nicht ;-) Ich wollte nur etwas Zeit verstreichen
            lassen. Es ging nur darum, den Mechanismus klarzustellen.

            ja aber $time1 = time(); und $time2 = time(); ist ja sonst dasselbe
            und mit sleep wird das script einfach nur 60sekunden angehalten,was
            vermutlich nicht gerade erwünscht ist vom autor...und sonst,versteh
            ich Dein mechanismus nicht -> keine logik -> ;-)

            Seine Frage war: wie erechne ich eine Zeit-Differenz? Die Antwort ging aus
            meinem Code klar hervor ($time2 - $time1).

            再见,
             CK

            --
            Wer sich zu überschwänglich freut, wir später Grund zum Weinen haben.
            http://wwwtech.de/
            1. Hallo zusammen

              Seine Frage war: wie erechne ich eine Zeit-Differenz? Die Antwort ging aus
              meinem Code klar hervor ($time2 - $time1).

              Bin auch der Meinung, dass dies sehr klar ist, nur frage ich mich, warum die Antwort so einfach sein kann (mit Format und so... gibt es da keine Fehler?)...

              Heisst das, das sich mit Perl beliebig Datum & Zeit addieren und subtrahieren lassen?

              Aus meinen Erfahrungen kenne ich, dass dafür häufig Code nötig ist, der das Format in seine Bestandteile aufsplittet...?

              Aber danke für den Tipp, ich werd's ausprobieren. Gruss ///BAS/// BasicArtsStudios

              1. Heisst das, das sich mit Perl beliebig Datum & Zeit addieren und subtrahieren lassen?

                Nein, du musst das Datum in ein Computertaugliches umwandeln, üblicherweise der Unixtimestamp (die Sekunden seit dem 1.1.1970) und damit läßt sich lecht rechnen.

                Aus meinen Erfahrungen kenne ich, dass dafür häufig Code nötig ist, der das Format in seine Bestandteile aufsplittet...?

                Das ist auch mit Perl nötig. wobei es aber Module gibt die dir diese Arbeit abnehmen z.b. Date::Calc.

                Struppi.

              2. hi,

                Seine Frage war: wie erechne ich eine Zeit-Differenz? Die Antwort ging aus
                meinem Code klar hervor ($time2 - $time1).

                Bin auch der Meinung, dass dies sehr klar ist, nur frage ich mich, warum die Antwort so einfach sein kann (mit Format und so... gibt es da keine Fehler?)...

                sorry,dass ich zu weit gedacht habe,dann wäre aber $differenz=($time2 - $time1); noch einfacher beantwortet gewesen.Also kindergarten aufgabe ;-)

                Heisst das, das sich mit Perl beliebig Datum & Zeit addieren und subtrahieren lassen?

                genau

                Aus meinen Erfahrungen kenne ich, dass dafür häufig Code nötig ist, der das Format in seine Bestandteile aufsplittet...?

                nicht wenn Du $datum = time(); benutzt,weil das eine dezimalzahl(in sekunden seit irgendwann ab 1970) ist ,welche nicht gesplittet werden muss,da nur eine zahl. näheres bei http://de.selfhtml.org/cgiperl/funktionen/datumzeit.htm#time

                Gruss
                Alain