Tage zwischen Daten ...

Das klappt meiner Meinung nach nur mit dem
date
aus den GNU Coreutilities.Wenn jemand andere Lösungen kennt, die auch in eine Zeile passen und mit Standard-Tools auskommen, dann bitte her damit.
echo $(( ($(date +%s --date=20121122) - $(date +%s))/24/60/60 ))
139
139
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt
cato am :
python -c "from datetime import datetime as d; print (d(2012,11,22)-d.now()).days"
Dirk Deimeke am :
Saddy am :
perl -e "use DateTime; print ((DateTime->now - DateTime->new(year=>2012,month=>07,day=>02))->delta_days)"
Dirk Deimeke am :
Federico Hernandez am :
Also
140
Falls du weiterhin die Division benutzt würde ich -u als Option für date benutzen - um alles in UTC zu machen. Ansonsten kann dir die Zeitumstellung ein Strich durch die Rechnung machen und dein Ergebnis verhunzen - nicht jetzt in deinem Beispiel, aber mit entsprechenden Datumvorgaben.
Ach ja, du solltest in deiner Methode noch eine +1 einfügen, ansonsten hast du ein Tag zuwenig:
20120705
$ echo $(( ($(date +%s -u --date=20120706) - $(date -u +%s)) /86400 ))
0
$ echo $(( ($(date +%s -u --date=20120706) - $(date -u +%s)) /86400 +1))
1
Dirk Deimeke am :
The Compiler am :
Ich hätt auch Python verwendet, aber das zählt wohl kaum als Standardtool
(hm, mal gucken ob der Spamfilter wieder anschlägt.)
Dirk Deimeke am :
Meines Wissens nach ist das auf jedem halbwegs aktuellen Linux installiert.
Danke für den Link!