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

C#で2つの日付の差を求める・比較する方法をわかりやすく解説

C#で2つの日付の差(違い)を調べるには、まずDateTimeクラスを使って、比較対象となる2つの日付を設定します。DateTimeクラスは日付と時刻を扱うための標準的なクラスで、日付同士の比較や差分の計算に幅広く活用できます。

比較する日付1を設定する

最初の日付をDateTimeオブジェクトとして作成し、コンソールに出力してみましょう。

DateTime date1 = new DateTime(2018, 09, 15);
Console.WriteLine("Date 1 : {0}", date1);

比較する日付2を設定する

同様に、2つ目の日付もDateTimeオブジェクトとして作成します。

DateTime date2 = new DateTime(2018, 09, 28);
Console.WriteLine("Date 2 : {0}", date2);

これで比較準備は完了です。次に、実際に2つの日付を比較してみましょう。

C#で日付を比較するサンプルコード

以下は、2つの日付を比較演算子(<)を使って比較し、どちらが先の日付かを判定する完全なサンプルプログラムです。

using System;

namespace Program {
    class Demo {
        static int Main() {
            // 日付1を作成
            DateTime date1 = new DateTime(2018, 09, 15);
            Console.WriteLine("Date 1 : {0}", date1);

            // 日付2を作成
            DateTime date2 = new DateTime(2018, 09, 28);
            Console.WriteLine("Date 2 : {0}", date2);

            // 日付を比較
            if (date1 < date2)
                Console.WriteLine("{0} comes before {1}", date1, date2);

            Console.Read();
            return 0;
        }
    }
}

実行結果

Date 1 : 9/15/2018 12:00:00 AM
Date 2 : 9/28/2018 12:00:00 AM
9/15/2018 12:00:00 AM comes before 9/28/2018 12:00:00 AM

このように、date1(9月15日)がdate2(9月28日)より前の日付であることが判定されました。

日付の差を具体的な数値として取得するには?

単純な大小比較だけでなく、「何日差があるか」といった具体的な差分を知りたい場合は、Subtractメソッドを使います。SubtractメソッドはTimeSpan型の値を返すため、日数・時間・分などの差分を簡単に取り出せます。

using System;

class Program {
    static void Main() {
        DateTime date1 = new DateTime(2018, 09, 15);
        DateTime date2 = new DateTime(2018, 09, 28);

        // 日付の差をTimeSpanとして取得
        TimeSpan diff = date2.Subtract(date1);

        Console.WriteLine("日数の差 : {0}日", diff.Days);
    }
}

このコードを実行すると「日数の差: 13日」と出力され、2つの日付の間隔が正確にわかります。

まとめ

  • C#ではDateTimeクラスを使って日付を表現できる
  • 比較演算子(<、>、==など)で日付の前後関係を簡単に判定できる
  • Subtractメソッドを使えば、日数などの具体的な差分をTimeSpanとして取得できる

日付の比較と差分計算は業務アプリケーションでも頻繁に使われる処理です。DateTimeクラスの基本的な使い方をマスターしておくと、さまざまな場面で役立ちます。

  1. 【Python入門】strptimeを使って日付文字列をdateオブジェクトに変換する方法

    Pythonでは、datetimeモジュールのstrptime関数を使うことで、文字列形式の日付データを簡単にdatetimeオブジェクトへ変換できます。この関数には、変換したい日付の文字列と、その日付がどのような書式で記述されているかを示すフォーマット指定子の2つの引数を渡します。基本的な使い方(サンプルコード)以下の例では、「2017年12月29日」という日付が「29122017」という文字列として表現されている場合に、それを日付オブジェクトへ変換しています。import datetime date_str = 29122017 # 日付文字列(2017年12月29日) format

  2. Pythonで文字列から日付を抽出・解析する方法

    文字列から日付を抽出するには、まずその文字列内で日付がどのような形式(フォーマット)で表現されているかを把握しておく必要があります。基本的なアプローチとしては、正規表現(reモジュール)で日付部分を取り出し、datetime.datetime.strptime() で解析(パース)するという流れになります。例えば、文字列中に「YYYY-MM-DD」形式の日付が含まれている場合、以下のコードで抽出と解析ができます。コード例import re import datetime s = I have a meeting on 2018-12-10 in New York match = re.sea