首頁 > 後端開發 > C++ > 在 C# 中如何將日期時間四捨五入到最接近的時間增量?

在 C# 中如何將日期時間四捨五入到最接近的時間增量?

Barbara Streisand
發布: 2025-01-06 19:06:40
原創
341 人瀏覽過

How Can I Round Up a DateTime to the Nearest Time Increment in C#?

將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}
登入後複製

在此範例中:

  • 初始值為「16:59」的 dt1 將向上捨入為「17:00」。
  • 初始值為「17:00」的 dt2 保持不變,因為它已經落在 15 分鐘上邊界。
  • 初始值為「17:01」的 dt3 會向上捨入為「17:15」。

以上是在 C# 中如何將日期時間四捨五入到最接近的時間增量?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板