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

C#で2つのDateTimeオブジェクト間の差をミリ秒単位で求める方法

C#では、TimeSpan構造体を使うことで、2つのDateTimeオブジェクト間の時間差を簡単に計算できます。この記事では、その差をミリ秒単位で取得する方法を解説します。

基本的な手順

まず、比較対象となる2つのDateTimeオブジェクトを用意します。以下は、同じ日付の時刻が異なる2つのオブジェクトの例です。

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

次に、2つの日時の差を求めます。DateTime同士は減算演算子(-)で引き算できるため、その結果としてTimeSpanオブジェクトが得られます。

TimeSpan ts = date2 - date1;

ミリ秒単位の差を取得するには、TimeSpanのTotalMillisecondsプロパティを使用します。

ts.TotalMilliseconds

サンプルコード

ここまでの手順をまとめた完全なコード例は以下の通りです。

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

実行結果

Difference in Milliseconds = 10745000

補足:TotalMillisecondsとMillisecondsの違い

TimeSpanには似た名前のプロパティが2つあるため、注意が必要です。

  • TotalMilliseconds:全体の時間差をミリ秒に換算した値(double型)。上記の例では約10,745,000ミリ秒(約2時間59分5秒)が返されます。
  • Milliseconds:時間差のうち「ミリ秒の部分」だけを表す値(int型、0〜999)。分や秒は含まれません。

2つの日時の全体的な差をミリ秒で知りたい場合は、必ずTotalMillisecondsを使用してください。

  1. C#で2つの日付の差を取得する方法(DateTime.Subtractの使い方)

    C#では、DateTime.Subtractメソッドを使うことで、2つの日付の差を簡単に取得できます。このメソッドはTimeSpan型の値を返すため、日数や時間、分などの差分を柔軟に扱うことが可能です。1. 2つの日付を設定するまず、比較対象となる2つの日付を設定します。DateTime date1 = new DateTime(2018, 8, 27); DateTime date2 = new DateTime(2018, 8, 28);2. Subtractメソッドで差分を取得する次に、Subtractメソッドを呼び出して日付の差を求めます。date2からdate1を引く形で記述します。

  2. C#で2つのリストの差分を取得する方法:Except()メソッドの使い方

    C#で2つのリストの差分(一方のリストにのみ存在する要素)を取得するには、LINQのExcept()メソッドを使うのが最も簡単です。まずは、比較対象となる2つのリストを用意しましょう。// 最初のリスト List<string> list1 = new List<string>(); list1.Add("A"); list1.Add("B"); list1.Add("C"); list1.Add("D"); // 2番目のリスト List<string> list2 = ne