Bash-Skript: Differenz in Minuten zwischen zwei Uhrzeiten
Ich habe zwei Zeit-strings; zB. "09:11" und "17:22" am gleichen Tag (format hh:mm). Wie kann ich die Zeit berechnen, die Differenz in Minuten zwischen diesen beiden?
Können die standard - date
Bibliothek tun?
Beispiel:
#!/bin/bash
MPHR=60 # Minutes per hour.
CURRENT=$(date -u -d '2007-09-01 17:30:24' '+%F %T.%N %Z')
TARGET=$(date -u -d'2007-12-25 12:30:00' '+%F %T.%N %Z')
MINUTES=$(( $(diff) / $MPHR ))
Gibt es eine einfachere Möglichkeit, dies zu tun, angesichts der Uhrzeit (Stunde und minute (hh:mm
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ein reines bash Lösung :
Andere Lösung mit
date
(wir arbeiten mit Stunden - /Minuten, also das Datum ist nicht wichtig)Sehen http://en.wikipedia.org/wiki/Unix_time
date
Befehl Lösungdate
Lösung funktioniert gut für mich. Es gab einige fehlende Klammern in der letzten arithmetischen operation (behoben). date (GNU coreutils) 8.20Ich würde konvertieren Sie die Daten, um UNIX-timestamps; Sie subtrahieren, um die Differenz in Sekunden, dann teilen Sie durch 60:
dt() { echo $(( ( $(date +%s -d "$2") - $(date +%s -d "$1") ) / 60 )) ; }
Dann kann ich nur gehendt '2007-09-01 17:30:24' '2007-12-25 12:30:00'
um die Antwort zu bekommen.Hier ist, wie ich es gemacht habe:
Wirklich einfach, nehmen Sie die Zahl von Sekunden am Anfang, dann nehmen Sie die Anzahl der Sekunden, die am Ende, und drucken Sie die Differenz in Minuten:Sekunden.
Ich war auf der Suche für eine Lösung mit Sekunden. Gefunden hier: Vorgehensweise zum berechnen der Laufzeit Unterschied in der bash-Skript?
Hier habe ich einige Sekunden, um Gilles' Lösung:
IHRE CODES :
@Dorian
Wenn Sie wollen einfach nur wissen, wie lange ein Programm nahm, um zu laufen: Zeit, Mann, Mann Zeit!
Triviales Beispiel:
OK, es doesn ' T geben Sie das Ergebnis in Sekunden, aber Sie können es tun, also mit einem format-string, oder einfach mit der POSIX-Konformität option: