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