GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Datumsunterschiede schnell berechnen?

Ich möchte oft einige schnelle Datumsberechnungen durchführen, wie zum Beispiel:

  • Was ist der Unterschied zwischen diesen beiden Daten?
  • Was ist das Datum n Wochen nach diesem anderen Datum?

Normalerweise öffne ich einen Kalender und zähle die Tage, aber ich denke, es sollte ein Programm/Skript geben, mit dem ich diese Art von Berechnungen durchführen kann. Irgendwelche Vorschläge?

Akzeptierte Antwort:

Die „n Wochen nach einem Datum“ sind mit GNU date(1) einfach:

$ date -d 'now + 3 weeks'
Tue Dec  6 23:58:04 EST 2011
$ date -d 'Aug 4 + 3 weeks'
Thu Aug 25 00:00:00 EST 2011
$ date -d 'Jan 1 1982 + 11 weeks'
Fri Mar 19 00:00:00 EST 1982

Ich kenne keinen einfachen Weg, um die Differenz zwischen zwei Daten zu berechnen, aber Sie können date(1) mit einer Shell-Funktion ein wenig logisch umschließen.

datediff() {
    d1=$(date -d "$1" +%s)
    d2=$(date -d "$2" +%s)
    echo $(( (d1 - d2) / 86400 )) days
}
$ datediff '1 Nov' '1 Aug'  # Note: answer should be 92 days but in my timezone, DST starts between the dates.
91 days

Tauschen Sie d1 aus und d2 wenn Sie die Datumsberechnung in die andere Richtung wünschen oder ein bisschen ausgefallener werden, damit es keine Rolle spielt. Falls es außerdem einen Übergang von Nicht-DST zu DST in dem Intervall gibt, wird einer der Tage nur 23 Stunden lang sein; Sie können dies kompensieren, indem Sie der Summe einen halben Tag hinzufügen.

echo $(( (((d1-d2) > 0 ? (d1-d2) : (d2-d1)) + 43200) / 86400 )) days

Linux
  1. Verwenden Sie awk, um die Buchstabenhäufigkeit zu berechnen

  2. Dd wird unplausibel schnell abgeschlossen?

  3. Anzahl der Tage bis zur Zahlung berechnen?

  4. Kennwortrichtlinien verwalten

  5. date-Befehlsbeispiele in Linux

pfSense vs. Sophos:Die Hauptunterschiede

Ansible vs. Kubernetes:Die Unterschiede verstehen

Datumsbefehl in Linux

7 Beispiele für Datumsbefehle in Linux

Ubuntu 22.10 Codename &Veröffentlichungsdatum

Bash:Berechnen Sie die zwischen zwei Zeitstempeln verstrichene Zeit