Differenz zwischen 2 Zeitpunkten
BasicArtsStudios
- perl
4 Christian Kruse-3 Alain
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
你好 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
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
你好 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
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
你好 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
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
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.
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