So runden Sie eine DateTime mit C auf die nächsten X Minuten auf
Das Aufrunden einer DateTime auf die nächste angegebene Anzahl von Minuten kann in einer Vielzahl von Szenarien nützlich sein . Hier ist eine einfache und effiziente Lösung für diese Aufgabe:
- Erstellen Sie eine RoundUp-Dienstprogrammfunktion:
public static DateTime RoundUp(DateTime dt, TimeSpan d)
{
return new DateTime((dt.Ticks + d.Ticks - 1) / d.Ticks * d.Ticks, dt.Kind);
}
- Verwendung :
Um eine DateTime auf die nächsten 15 Minuten aufzurunden, Verwenden Sie den folgenden Code:
var dt1 = RoundUp(DateTime.Parse("2011-08-11 16:59"), TimeSpan.FromMinutes(15));
// dt1 == {11/08/2011 17:00:00}
- Den Code verstehen:
- Die RoundUp-Funktion benötigt eine DateTime (dt) und eine TimeSpan (d), der das Rundungsintervall darstellt.
- Der Ausdruck (dt.Ticks d.Ticks - 1) Berechnet den nächsten Tick-Wert, der durch d.Ticks teilbar ist.
- Die Division und Multiplikation mit d.Ticks stellt sicher, dass das Ergebnis auf das angegebene Intervall aufgerundet wird.
- Die neue DateTime wird mit dem berechneten Wert erstellt Ticks und die gleiche Art (lokal/UTC) wie die ursprüngliche DateTime.
Beispiel Ausgabe:
- Eingabe: 11.08.2011 16:59
- Ergebnis: 11.08.2011 17:00
Zusätzlich Hinweise:
- Dieser Ansatz rundet auf die nächste ganze Zahl von Intervallen auf, unabhängig von der Zeitzone.
- Zum Abrunden ersetzen Sie (dt.Ticks d.Ticks - 1) mit (dt.Ticks 1).
Das obige ist der detaillierte Inhalt vonWie rundet man eine DateTime in C# auf die nächsten X Minuten auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn