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を使用してください。
-
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を引く形で記述します。
-
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