C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#で2つの日付間の差分を「分」単位で計算する方法

C#では、DateTime型同士の減算とTimeSpan構造体を使うことで、2つの日付・時刻の差分を簡単に計算できます。この記事では、その差分を「分」単位で取得する手順を解説します。

1. 2つの日付を設定する

まず、比較対象となる2つの日付をDateTimeオブジェクトとして定義します。

DateTime date1 = new DateTime(2018, 7, 15, 08, 15, 20);
DateTime date2 = new DateTime(2018, 8, 17, 11, 14, 25);

ここでは、年・月・日・時・分・秒をそれぞれ指定して、日付と時刻の両方を含む値を作成しています。

2. 日付の差分を計算する

次に、2つのDateTime同士を減算すると、その結果はTimeSpan型として返されます。

TimeSpan ts = date2 - date1;

TimeSpanは、時間間隔(期間)を表す構造体で、日数・時間・分・秒などの情報を持っています。

3. 差分を「分」単位で取得する

差分を分単位で求めるには、TimeSpanTotalMinutesプロパティを使用します。

ts.TotalMinutes

なお、TotalMinutesは端数も含めたdouble型の値を返す点に注意してください。整数部分だけが必要な場合は、キャストやMath.Floorなどで丸めることができます。

サンプルコード全体

以上の手順をまとめた完全なコード例がこちらです。

using System;
using System.Linq;
public class Demo {
   public static void Main() {
      DateTime date1 = new DateTime(2018, 7, 15, 08, 15, 20);
      DateTime date2 = new DateTime(2018, 8, 17, 11, 14, 25);
      TimeSpan ts = date2 - date1;
      Console.WriteLine("No. of Minutes (Difference) = {0}", ts.TotalMinutes);
   }
}

実行結果

No. of Minutes (Difference) = 47699.0833333333

このように、2018年7月15日08時15分20秒から2018年8月17日11時14分25秒までの差分は、約47,699.08分であることがわかります。

補足:他の単位での取得も可能

TimeSpanには以下のようなプロパティも用意されており、用途に応じて使い分けられます。

  • TotalDays … 差分を日単位で取得
  • TotalHours … 差分を時間単位で取得
  • TotalSeconds … 差分を秒単位で取得

日付間の差分計算は、勤怠管理や有効期限チェックなど、さまざまな場面で活用できる基本的なテクニックです。

  1. Excelで2つの日付間のうるう年の数を計算する方法

    企業、官公庁、イベント主催者などにとって、リストの中にうるう年がいくつ含まれているのかを把握しておくことは重要です。Excelで2つの日付の間に含まれるうるう年の数を確認したい場合は、ぜひこの記事をご覧ください。 うるう年は平年に比べてわずか1日多いだけですが、その影響はさまざまな計算に及びます。多くの企業では、うるう年かどうかによって給与計算が変わり、ビジネスの利益計算にも影響が出ることがあります。 Excelで2つの日付間のうるう年数を計算する Excelで2つの日付間のうるう年の数をカウントするには、次の数式を使用します。 =DATE(YEAR(<終了日のセル>),1,1)-

  2. Excelで2つの日付の間のすべての日付を抽出して一覧表示する2つの方法

    スケジュール表や活動記録など、日付ごとの表を作成しなければならない場面はよくあります。そのような場合、日付のリストが必要になります。リストには必ず開始日と終了日があり、その間のすべての日付を列挙する必要があります。 Excelで2つの日付間の全日付を一覧表示する方法 この記事では、指定した2つの日付の間にあるすべての日付を、1つの列にリストとして取得する方法を紹介します。やり方は主に次の2つです。 フィルハンドルを使って連続した日付のリストを作成する 数式を使って2つの日付間のすべての日付を取得する 方法1:フィルハンドルで連続日付のリストを作成する Microsoft Excelには「