DateTime auf das nächste Zeitinkrement aufrunden
In vielen Programmierszenarien ist das Aufrunden eines DateTime-Werts auf das nächste spezifische Zeitinkrement erforderlich. Eine häufige Anforderung besteht beispielsweise darin, auf die nächsten 15 Minuten aufzurunden, um den Einschränkungen des Geschäftsplans gerecht zu werden.
Um diesem Bedarf gerecht zu werden, kann eine einfache und effektive Funktion namens RoundUp verwendet werden. Es benötigt zwei Parameter: einen DateTime-Wert und einen TimeSpan, der das gewünschte Inkrement darstellt.
Funktionsimplementierung:
public static DateTime RoundUp(DateTime dt, TimeSpan d) { return new DateTime((dt.Ticks + d.Ticks - 1) / d.Ticks * d.Ticks, dt.Kind); }
Verwendung:
Das folgende Codefragment zeigt, wie die RoundUp-Funktion auf verschiedene DateTime-Werte mit einem Inkrement von 15 angewendet wird Minuten:
// Round up to nearest 15-minute increment var dt1 = RoundUp(DateTime.Parse("2011-08-11 16:59"), TimeSpan.FromMinutes(15)); // Output: {11/08/2011 17:00:00} var dt2 = RoundUp(DateTime.Parse("2011-08-11 17:00"), TimeSpan.FromMinutes(15)); // Output: {11/08/2011 17:00:00} var dt3 = RoundUp(DateTime.Parse("2011-08-11 17:01"), TimeSpan.FromMinutes(15)); // Output: {11/08/2011 17:15:00}
In diesem Beispiel:
Das obige ist der detaillierte Inhalt vonWie kann ich eine DateTime auf das nächste Zeitinkrement in C# aufrunden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!