プログラミングにおいて、ある日から別の日までの日数などを計算する処理が必要になることがあります。たとえば、以下のような情報を表示する場合に、日付の計算が必要になります。
- ライセンス期限まで残り〇日
- ××終了まで残り〇〇秒
この記事では、C#を使用して2つの時間の差を計算する方法について紹介します。
サンプルコード
ふたつの日付の差を計算し、それを色々な単位で表示する例です。
using System;
class Program
{
static void Main(string[] args)
{
// 日時1
DateTime dt1 = new DateTime(2024, 4, 7, 12, 0, 0);
// 日時2(現在の日時を使用する場合は、DateTime.Now を使用)
DateTime dt2 = new DateTime(2024, 4, 8, 14, 3, 4);
// 日時の差を計算 ★
TimeSpan diff = dt2 - dt1;
// 日時の差をコンソールに表示 ★
Console.WriteLine($"日付2と日付1の差: {diff.Days}日 {diff.Hours}時間 {diff.Minutes}分 {diff.Seconds}秒");
// 日時の差をミリ秒で表示 ★
Console.WriteLine($"差をミリ秒で表示: {diff.TotalMilliseconds}");
// 日時の差を秒で表示 ★
Console.WriteLine($"差を秒で表示: {diff.TotalSeconds}");
// 日時の差を分で表示 ★
Console.WriteLine($"差を分で表示: {diff.TotalMinutes}");
// 日時の差を時で表示 ★
Console.WriteLine($"差を時で表示: {diff.TotalHours}");
// 日時の差を日で表示 ★
Console.WriteLine($"差を日で表示: {diff.TotalDays}");
}
}
実行結果
日付2と日付1の差: 1日 2時間 3分 4秒
差をミリ秒で表示: 93784000
差を秒で表示: 93784
差を分で表示: 1563.06666666667
差を時で表示: 26.0511111111111
差を日で表示: 1.08546296296296
DateTime型は、-(マイナス)演算子で差を求めることができます。結果は、TimeSpan型で返されます。TimeSpan型には、上記のサンプルコードで示したように、時間の差を表現するための様々なプロパティが用意されていますので、処理に応じて適切なプロパティを選択してください。
まとめ
この記事では、C#を使用して2つの時間の差を計算する方法について紹介しました。