C# TimeSpanで時間差を求める(時間間隔)
C#のTimeSpan構造体は時間の間隔を表し、2つの日付や時刻の差を計算するために使用できます。以下に、C#のTimeSpanを使用して時間差を計算する方法の詳細を示します。
- TimeSpanオブジェクトの作成:
TimeSpanのコンストラクタを使用してTimeSpanオブジェクトを作成できます。コンストラクタはさまざまなパラメータを受け入れ、必要に応じて適切なコンストラクタを選択できます。例:
TimeSpan ts1 = new TimeSpan(1, 0, 0); // 表示1小时
TimeSpan ts2 = new TimeSpan(0, 30, 0); // 表示30分钟
TimeSpan ts3 = new TimeSpan(0, 0, 30); // 表示30秒钟
TimeSpan ts4 = new TimeSpan(1, 30, 0, 0); // 表示1天半
TimeSpan ts5 = new TimeSpan(0, 0, 0, 500); // 表示500毫秒
- 時間差を計算する
タイムスパンオブジェクトを使用して、2つの日付や時刻の差を簡単に計算できます。減算演算子(-)を使用して、時間差を計算できます。例:
DateTime start = new DateTime(2021, 1, 1);
DateTime end = new DateTime(2021, 1, 2);
TimeSpan duration = end - start; // 计算时间差
Console.WriteLine(duration.Days); // 输出1,表示相差1天
- タイムスパンの個々の構成要素を取得する:
TimeSpan オブジェクトは、Days、Hours、Minutes、Seconds、Milliseconds などの TimeSpan の構成部分を取得するためのプロパティを提供しています。これらのプロパティを使うと、TimeSpan の日数、時間、分、秒、ミリ秒を取得できます。例:
DateTime start = new DateTime(2021, 1, 1);
DateTime end = new DateTime(2021, 1, 2);
TimeSpan duration = end - start; // 计算时间差
Console.WriteLine(duration.Days); // 输出1,表示相差1天
Console.WriteLine(duration.Hours); // 输出0,表示相差0小时
Console.WriteLine(duration.Minutes); // 输出0,表示相差0分钟
Console.WriteLine(duration.Seconds); // 输出0,表示相差0秒
Console.WriteLine(duration.Milliseconds); // 输出0,表示相差0毫秒
- タイムラグのフォーマット出力:
「TimeSpan」オブジェクトは、「ToString」メソッドを提供します。これにより、時間差を指定された文字列表現にフォーマットできます。標準またはカスタマイズされたフォーマット文字列を使用して出力をフォーマットできます。たとえば:
DateTime start = new DateTime(2021, 1, 1);
DateTime end = new DateTime(2021, 1, 2);
TimeSpan duration = end - start; // 计算时间差
Console.WriteLine(duration.ToString()); // 输出1.00:00:00,表示相差1天
Console.WriteLine(duration.ToString("c")); // 输出1.00:00:00,表示相差1天
Console.WriteLine(duration.ToString("g")); // 输出1.00:00:00,表示相差1天
Console.WriteLine(duration.ToString("hh\\:mm\\:ss")); // 输出24:00:00,表示相差24小时
C# の TimeSpan を用いた時間差の計算に関する基本的な概念と使い方です。TimeSpan オブジェクトを利用することで、日付と時間の差分を扱いやすくなり、差分の計算やフォーマット出力が行えます。