
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);
}
Nach dem Login kopieren
- 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}
Nach dem Login kopieren
- 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!