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

C#のDateTimeOffset.CompareTo()メソッドの使い方を徹底解説

C#のDateTimeOffset.CompareTo()メソッドは、現在のDateTimeOffsetオブジェクトと指定された別のDateTimeOffsetオブジェクトを比較し、現在のオブジェクトが相手より前の日時なのか、同一なのか、それとも後の日時なのかを判定するために使用されます。

このメソッドは整数値を返し、戻り値の意味は以下の通りです。

  • 0未満 – このインスタンスがValより前の日時である場合
  • 0 – このインスタンスがValと同一である場合
  • 0より大きい – このインスタンスがValより後の日時である場合

構文

構文は以下の通りです。

public int CompareTo (DateTimeOffset val);

引数の「val」には、比較対象となるDateTimeOffsetオブジェクトを指定します。

使用例1:等しい日時を比較する場合

まず、DateTimeOffset.CompareTo()メソッドを使って、同じ日時を持つ2つのオブジェクトを比較する例を見てみましょう。

using System;
public class Demo {
   public static void Main() {
      DateTimeOffset dateTimeOffset1 = new DateTimeOffset(2019, 09, 09, 8, 20, 10, new TimeSpan(-5, 0, 0));
      DateTimeOffset dateTimeOffset2 = new DateTimeOffset(2019, 09, 09, 8, 20, 10, new TimeSpan(-5, 0, 0));
      Console.WriteLine("DateTimeOffset1 = {0}", dateTimeOffset1);
      Console.WriteLine("DateTimeOffset2 = {0}", dateTimeOffset2);
      int res = dateTimeOffset1.CompareTo(dateTimeOffset2);
      // dateTimeOffset1とdateTimeOffset2が等しいため、0が返される
      Console.WriteLine(res);
   }
}

出力

このコードを実行すると、以下の出力が得られます。

DateTimeOffset1 = 9/9/2019 8:20:10 AM -05:00
DateTimeOffset2 = 9/9/2019 8:20:10 AM -05:00
0

使用例2:異なる日時を比較する場合

次に、日時が異なる2つのオブジェクトを比較する例を見てみましょう。

using System;
public class Demo {
   public static void Main() {
      DateTimeOffset dateTimeOffset1 = new DateTimeOffset(2019, 11, 09, 8, 20, 10, new TimeSpan(-5, 0, 0));
      DateTimeOffset dateTimeOffset2 = new DateTimeOffset(2019, 09, 09, 8, 20, 10, new TimeSpan(-5, 0, 0));
      Console.WriteLine("DateTimeOffset1 = {0}", dateTimeOffset1);
      Console.WriteLine("DateTimeOffset2 = {0}", dateTimeOffset2);
      int res = dateTimeOffset1.CompareTo(dateTimeOffset2);
      // dateTimeOffset1の方がdateTimeOffset2より後のため、正の値が返される
      Console.WriteLine(res);
   }
}

出力

このコードを実行すると、以下の出力が得られます。

DateTimeOffset1 = 11/9/2019 8:20:10 AM -05:00
DateTimeOffset2 = 9/9/2019 8:20:10 AM -05:00
1

まとめ

DateTimeOffset.CompareTo()メソッドを使用すると、UTCオフセットを含む日時情報を考慮した上で、2つの日時の前後関係を簡単に判定できます。戻り値の符号(負の値・ゼロ・正の値)によって大小関係を直感的に把握できるため、日時のソート処理や条件分岐など、さまざまな場面で活用できます。

  1. 【C#入門】DateTimeOffset.AddYears()メソッドの使い方を徹底解説

    C#のDateTimeOffset.AddYears()メソッドは、現在のDateTimeOffsetインスタンスが表す日時に、指定した年数を加算した新しいDateTimeOffset値を返すメソッドです。元のインスタンスの値は変更されず、計算結果が新しいオブジェクトとして返される点に注意してください。構文AddYears()メソッドの構文は以下のとおりです。public DateTimeOffset AddYears (int val);引数valには、加算する年数を整数で指定します。負の値を指定すると、年数を減算(過去にさかのぼる)ことができます。主な特徴戻り値は新しいDateTimeOf

  2. C#のCompareTo()メソッドの使い方を解説

    C#では、2つの値を比較する際にCompareTo()メソッドを使用します。このメソッドは、呼び出し元の値と引数で渡した値を比較し、その大小関係を整数値として返します。CompareTo()メソッドの戻り値CompareTo()メソッドの戻り値は以下の3パターンです。0 = 両方の値が等しい場合1 = 呼び出し元の値が引数の値より大きい場合(第2の数値が小さい)-1 = 呼び出し元の値が引数の値より小さい場合(第1の数値が小さい)CompareTo()メソッドの実装例それでは、C#でCompareTo()メソッドを実装するサンプルコードを見てみましょう。ここでは、同じ値を持つ2つのint型変数