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

DateTime オブジェクトを最も近い X 分に切り上げるにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-06 19:35:41992ブラウズ

How Can I Round Up a DateTime Object to the Nearest X Minutes?

時間を最も近い X 分に切り上げる

タイムスタンプを扱う場合、多くの場合、時間値を特定の間隔に丸めることが必要になります。たとえば、特にスケジュールや予約システムを使用する場合は、時間を最も近い 15 分に四捨五入する必要がある場合があります。

このニーズに対処するために、時間を簡単に四捨五入できる汎用性の高い関数が存在します。 DateTime オブジェクトを最も近い X 分に変換します。

実装

次のコード スニペットは、前述の内容を示しています。 function:

DateTime RoundUp(DateTime dt, TimeSpan d)
{
    return new DateTime((dt.Ticks + d.Ticks - 1) / d.Ticks * d.Ticks, dt.Kind);
}

使用法

この関数を使用するには、丸めたい DateTime と丸める間隔 (TimeSpan) を指定するだけです。たとえば、最も近い 15 分に切り上げるには:

var dt1 = RoundUp(DateTime.Parse("2011-08-11 16:59"), TimeSpan.FromMinutes(15));
// dt1 == {11/08/2011 17:00:00}

これにより、時刻が最も近い 15 分間隔に丸められ、上記の例では 17:00 になります。

追加の例

  • 30 未満の四捨五入分:
var dt2 = RoundUp(DateTime.Parse("2011-08-11 17:11"), TimeSpan.FromMinutes(30));
// dt2 == {11/08/2011 17:30:00}
  • 最も近い 60 分 (1 時間) に切り上げ:
var dt3 = RoundUp(DateTime.Parse("2011-08-11 18:05"), TimeSpan.FromMinutes(60));
// dt3 == {11/08/2011 19:00:00}

以上がDateTime オブジェクトを最も近い X 分に切り上げるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。