將DateTime 舍入到最近的時間增量
在許多編程場景中,有必要將DateTime 值舍入到最接近的特定時間增量。例如,一個常見的要求是四捨五入到最接近的 15 分鐘,以符合業務日程限制。
為了滿足這個需求,可以使用一個名為 RoundUp 的簡單而有效的函數。它需要兩個參數:一個 DateTime 值和一個表示所需增量的 TimeSpan。
函數實作:
public static DateTime RoundUp(DateTime dt, TimeSpan d) { return new DateTime((dt.Ticks + d.Ticks - 1) / d.Ticks * d.Ticks, dt.Kind); }
用法:
以下程式碼片段示範如何將RoundUp 函數應用於各各各種DateTime 值,增量為15分鐘:
// 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}
在此範例中:
以上是在 C# 中如何將日期時間四捨五入到最接近的時間增量?的詳細內容。更多資訊請關注PHP中文網其他相關文章!