C#でNullable(null許容)DateTimeを使う方法
C#において、DateTimeは値型であるため、通常はnullを代入することができません。しかし、null許容型(Nullable型)を使用すると、DateTime型の変数にnullリテラルを代入できるようになります。
null許容のDateTimeは、型名の後ろに疑問符(?)を付ける次の構文で宣言します。
DateTime?
以下は、Nullable DateTimeを実装するサンプルコードです。
コード例
using System;
class Program {
static void Main() {
DateTime? dt = null;
DateFunc(dt);
dt = DateTime.Now;
DateFunc(dt);
dt = null;
Console.WriteLine(dt.GetValueOrDefault());
}
static void DateFunc(DateTime? dt) {
if (dt.HasValue) {
Console.WriteLine(dt.Value);
} else {
Console.WriteLine(0);
}
}
}コードのポイント
HasValueプロパティ:変数に値が設定されているかどうかを判定します。値があればtrue、nullならfalseを返します。Valueプロパティ:実際のDateTime値を取得します。nullの場合にアクセスすると例外が発生するため、事前にHasValueでのチェックが必要です。GetValueOrDefault()メソッド:値が設定されていればその値を、nullの場合は既定値(DateTime.MinValue=0001年1月1日)を返します。
出力結果
0 9/17/2018 8:27:07 AM 1/1/0001 12:00:00 AM
このように、null許容型を使うことで、「日付が未設定である状態」を明確に表現でき、データベースのNULL値を扱う場面などで特に役立ちます。
-
C#のDateTime.AddHours()メソッドの使い方を徹底解説
C#のDateTime.AddHours()メソッドは、指定した時間数を現在のDateTimeインスタンスの値に加算するためのメソッドです。重要なポイントとして、このメソッドは元のDateTimeオブジェクトを変更せず、計算結果を含む新しいDateTimeオブジェクトを返します。基本仕様DateTimeは不変(イミュータブル)な構造体のため、AddHours()を呼び出しても元の値は変わりません。戻り値は加算後の日時を持つ新しいDateTimeです。構文public DateTime AddHours (double hrs);パラメータ hrs には加算する時間数を指定します。負の値を渡すこ
-
C#のDateTime.AddDays()メソッドの使い方を徹底解説!日付に日数を加算する方法
C#のDateTime.AddDays()メソッドは、現在のDateTimeインスタンスの値に指定した日数を加算するためのメソッドです。このメソッドは元のDateTimeオブジェクトを変更するのではなく、計算結果として新しいDateTimeオブジェクトを返します。そのため、戻り値を受け取る変数が必要になる点に注意しましょう。 基本構文 DateTime.AddDays()メソッドの構文は以下のとおりです。 public DateTime AddDays (double days); 引数 days には加算したい日数をdouble型で指定します。負の値を渡すことで、日付を減算(過去の日付に移動