Zeitraumberechnung

T

topvbal

Grünschnabel
Guten morgen

Ich hab folgendes Prob:

ich möchte den Zeitraum zwische dem heutigen Dtaum und einem vergangenen Datum in Tagen berechnen. Wie kann ich das realisieren. Ein Anforderung is, dass es in der Korn-Shell funzen muss. Ich hatte auch schon an eine Lösung mit Perl gedacht. Hier mal der Anfang
Code:
perl -MPOSIX -e 'print strftime("%y%m%d%H%M",localtime(time()-[COLOR="Red"]vergangenes_Datum[/COLOR]))'
Wie kann ich jetzt ein älteres Datum in diese Berechnung einfügen?

Schon mal vielen Danke im Voraus.
 
Wahrscheinlich gibts 'ne bessere Lösung, aber ich realisier dies bei mir grob wie folgt:

Code:
echo "1.12.1999" | perl -nal -F'\.' -e '@t=localtime(time()); print (((1900+$t[5]-$F[2])*12+$t[4]-$F[1])*30+$t[3]-$F[0])'

Gruss, Xanti
 
kannst du mir die Zeile vllt mal nen bisel erläutern?
 
Da Du selber ein Perl-Beispiel gebracht hast, nehme ich an, dass Du etwas Erfahrung mit Perl hast.

Kurze Erläuterung zu den Params:

-n Legt Schleife um Stdin
-a aktiviert den Autosplit von Stdin
-F '\.' sagt, wo gesplittet werden soll, sprich 1.12.1999 wird an den Punkten gesplittet und ein Array @F mit $F[0]=1, $F[0]=12... wird bereitgestellt.

Mehr dazu in "perldoc perlrun".

Der Rest ist selbsterklärend. localtime() liefert ebenfalls ein Array (Sekunde, Minute,...), wobei beachtet werden muss, dass das Jahr noch um 1900 inkrementiert werden muss (perldoc -f localtime).

Gruss, Xanti
 
Hallo

Wenn es schon Perl sein darf, dann empfehle ich dafür das Modul Date::Calc
Auf Cpan erhältlich.
Code:
$ perl -mDate::Calc=Delta_Days -le '$Dd=Delta_Days(2005,06,01,2006,06,01);print $Dd'
365
Das gibt beispielsweise die Anzahl der Tage zwischen dem 1.Juni 2005 und dem 1.Juni 2006 aus.
Siehe http://www.oreilly.de/catalog/perlmodger/manpage/calc.htm#Delta_Days
oder perldoc Date::Calc

Gruß Wolfgang
PS welches date verwendest du?
GNU Date kennt den Formatstring %s, was die Sekunden (Unix-Timestamp) ausgibt.
Damit könntest du auch rechnen und anschließend umrechnen Diff/24*3600.
 

Ähnliche Themen

Last mit etc/passwd anzeigen lassen

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

mit grep an den Dateinamen, anstelle der gefundenen Zeile

Eingabe 2er paramerter????

jetztdate minus vorhindate

Zurück
Oben