Wie kann ich in Perl ein Datum auf das nächste 15-Minuten-Intervall runden?

7

Ich möchte die aktuelle Zeit auf das nächste 15 Minutenintervall runden.
Wenn es also aktuell 6:07 ist, würde es 6:15 als Startzeit lesen.

Wie kann ich das tun?

    
Bdfy 11.10.2010, 15:22
quelle

4 Antworten

11

Sie können die Zeit in Stunden und Minuten aufteilen und dann die Funktion ceil als:

verwenden %Vor%     
codaddict 11.10.2010, 15:30
quelle
8

Das nächste Intervall von 15 Minuten zu 6:07 ist 6:00, nicht 6:15. Möchten Sie das nächste 15-Minuten-Intervall oder das nächste 15-Minuten-Intervall?

Angenommen, es ist der nächste, etwas wie das tut, was Sie wollen.

%Vor%     
Dave Cross 11.10.2010 15:48
quelle
4

Eine einfache Lösung ist Math :: Runde von CPAN.

%Vor%     
mscha 11.10.2010 17:13
quelle
0

Geringere Variation der ersten Antwort mit sprintf anstelle von ceil und POSIX. Verwendet auch keine zusätzlichen CPAN-Module. Dies rundet auf oder ab, also 6:07 = 6:00, 6:08 = 6:15, 6:22 = 6:15 und 6:23 = 6:30. Beachten Sie, dass eine Stunde hinzugefügt wird, wenn die gerundeten Minuten gleich 60 sind. Um dies jedoch richtig auszuführen, müssen Sie eine Zeitzonen- und Ortszeitfunktion verwenden, um die Stunde hinzuzufügen. Das Hinzufügen einer Stunde kann einen Tag, einen Monat oder ein Jahr hinzufügen.

%Vor%     
cccict 04.07.2016 17:00
quelle

Tags und Links