C#で2つの日付型(DateTime)の期間を取得する

C#ではDateTime構造体を使って日付や時間を管理できます。
DateTimeでは、2つの日付の期間が何日間なのかや指定の日付から何時間経過しているかといった計算が簡単に

行えます。

 


DateTimeのマイナス演算子とTimeSpan構造体

DateTimeのマイナス演算子を使うと、2つの日付の間の期間を取得することができます。

演算結果はDateSpan構造体として帰ります。

 

    // 指定日時をセット 2023/1/2 03:04:05
    DateTime dt1 = new DateTime(2023, 1, 2, 3, 4, 5);

    // 現在の日時
    DateTime dt2 = DateTime.Now;

    // 引き算
    TimeSpan ts = dt2 - dt1;

    // 期間の日,時間,分,秒,ミリ秒をそれぞれ取得する
    Console.WriteLine(ts.Days);
    Console.WriteLine(ts.Hours);
    Console.WriteLine(ts.Minutes);
    Console.WriteLine(ts.Seconds);
    Console.WriteLine(ts.Milliseconds);

    // 期間を日単位(整数部と小数部から成る日数)で取得する
    Console.WriteLine(ts.TotalDays);

    // 期間を時間単位(整数部と小数部から成る時間数)で取得する
    Console.WriteLine(ts.TotalHours);

    // 期間を分単位(整数部と小数部から成る分数)で取得する
    Console.WriteLine(ts.TotalMinutes);

    // 期間を秒単位(整数部と小数部から成る秒数)で取得する
    Console.WriteLine(ts.TotalSeconds);

    // 期間をミリ秒単位(整数部と小数部から成るミリ秒数)で取得する
    Console.WriteLine(ts.TotalMilliseconds);

8行目で引き算を行って期間をTimeSpan型で取得しています。

TimeSpan型は、期間の日,時間,分,秒,ミリ秒をそれぞれ取得することもできるし、時間単位や秒単位で取得することも可能です。

 

関連記事