ホームページ > バックエンド開発 > C++ > C# で DateTime を最も近い時間増分に切り上げるにはどうすればよいですか?

C# で DateTime を最も近い時間増分に切り上げるにはどうすればよいですか?

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 の 2 つのパラメーターを取ります。

関数実装:

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# で DateTime を最も近い時間増分に切り上げるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート