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

C#のDateTimeクラスで日付を扱う方法を解説

C#で日付や時刻を扱うには、DateTimeクラスを使用します。DateTimeが表現できる値の範囲は、西暦0001年1月1日の午前0時0分0秒から、西暦9999年12月31日の午後11時59分59秒までです。

この記事では、DateTimeオブジェクトの作成方法、現在日時の取得方法、そしてAddDaysメソッドを使った日付の加算方法について、サンプルコードとともにわかりやすく解説します。

DateTimeオブジェクトを作成する

まずは、DateTimeオブジェクトを作成する基本的な例を見てみましょう。コンストラクタに年、月、日を指定することで、任意の日付を持つDateTimeインスタンスを生成できます。

サンプルコード

using System;
class Test {
    static void Main() {
        DateTime dt = new DateTime(2018, 7, 24);
        Console.WriteLine(dt.ToString());
    }
}

実行結果

7/24/2018 12:00:00 AM

この例では、2018年7月24日の日付を持つDateTimeオブジェクトを作成しています。時刻を指定していないため、午前0時(12:00:00 AM)が自動的に設定されます。

現在の日付と時刻を取得する

現在のシステム日時を取得したい場合は、静的プロパティであるDateTime.Nowを使用します。

サンプルコード

using System;
class Test {
    static void Main() {
        Console.WriteLine(DateTime.Now.ToString());
    }
}

実行結果

9/17/2018 5:49:21 AM

DateTime.Nowは、プログラムを実行した時点のローカルな日付と時刻を返します。実行するタイミングによって出力結果は異なります。

AddDaysメソッドで日付を加算する

DateTime構造体には、日付を計算するための便利なメソッドが多数用意されています。ここではAddDays()メソッドを使って、指定した日数を加算する例を紹介します。

サンプルコード

using System;
class Test {
    static void Main() {
        DateTime dt1 = new DateTime(2018, 7, 23, 08, 20, 10);
        Console.WriteLine("Old Date: " + dt1.ToString());
        DateTime dt2 = dt1.AddDays(7);
        Console.WriteLine("New Date: " + dt2.ToString());
    }
}

実行結果

Old Date: 7/23/2018 8:20:10 AM
New Date: 7/30/2018 8:20:10 AM

この例では、2018年7月23日8時20分10秒という日時を持つdt1に対して、AddDays(7)で7日間を加算し、新しいDateTimeオブジェクトdt2を生成しています。元のdt1の値は変更されず、計算結果は新しいオブジェクトとして返される点に注意してください。これはDateTimeが不変(イミュータブル)であるためです。

まとめ

C#における日付操作の基本はDateTimeクラスです。主なポイントは以下の通りです。

  • DateTimeは西暦1年1月1日から9999年12月31日までの範囲を扱える
  • コンストラクタに年・月・日(必要に応じて時刻も)を指定してオブジェクトを作成できる
  • DateTime.Nowプロパティで現在のローカル日時を取得できる
  • AddDays()などのメソッドで日付の加算・減算が可能(結果は新しいオブジェクトとして返る)

ほかにもAddMonths()、AddYears()、AddHours()など、さまざまな単位で日時を操作するメソッドが用意されているので、用途に合わせて活用してみてください。

  1. C#のConvertクラスを使ったデータ型変換の基本と実例

    C#のConvertクラスには、基本データ型を別の基本データ型へ変換するためのメソッドが多数用意されています。この記事では、代表的な変換メソッドであるConvert.ToBoolean()、Convert.ToDouble()、Convert.ToDecimal()の使い方を、構文・サンプルコード・実行結果とあわせてわかりやすく解説します。 Convert.ToBoolean()メソッドとは Convert.ToBoolean()メソッドは、指定した値を等価なBoolean(真偽値)に変換します。文字列「true」や「false」をbool型に変換したい場合などに利用されます。 構文 pu

  2. C#のConsoleクラスとは?主要プロパティの使い方を実例付きで解説

    C#のConsoleクラスは、コンソールアプリケーションにおける標準入力・標準出力・標準エラー出力の各ストリームを表すクラスです。テキストの表示や入力の読み取りだけでなく、文字色や背景色の変更、カーソル位置やサイズの制御など、コンソール操作に関するさまざまな機能が提供されています。ここでは、Consoleクラスの代表的なプロパティの使い方を、サンプルコードと実行結果とあわせて解説します。Console.CursorLeftプロパティコンソール上のカーソル位置(左端から数えた列位置)を変更するには、Console.CursorLeftプロパティを使用します。サンプルコードusing System