2012-02-12 17 views
3

私が持っている私の次のように2 DateTime日時がnullであるかどうかを確認する方法

 DateTime startDate = CalendarFrom.SelectedDate; 
     DateTime endDate = CalendarTo.SelectedDate; 

は今、私はstartDateendDateが選択されているかどうかチェックしたいです。私が知っているように、我々はので、私はこのように書くDateTimeにnullを代入することはできません。

 if (startDate == DateTime.MinValue && endDate == DateTime.MinValue) 
     { 
      // actions here 
     } 

私はendDateのために、それはそれはそう「1/1/0001午前12:00:00」ではないことを実感しかし、 DateTime.MinValueを使用してチェックすることはできません。

endDateの確認方法を教えてください。ありがとう!

+0

この場合、nullとして報告する日付がNOT DateTime.MinValueとして返されます。次に、定数を使用して、使用しているカレンダーコントロールのnullに対応する値を表します。 –

答えて

13

DateTime自体はnullにできません。DateTime?別名Nullable<DateTime>を使用してnull値を表すのが一番簡単です。

それはCalendarFromCalendarToが何であるかは明らかではないのですが、彼らは自分自身をNullable<DateTime>をサポートしていないかもしれない - しかし、あなたはどこで直接CalendarFromを使用しているよりも、どこでもNullable<DateTime>を使用することができますので、ここで変換を集中するために良いでしょうおよびCalendarTo

3

あなたのCalenderFromとCalenderToは何ですか?私は彼らが静的なクラスであると仮定しています。その前提に基づいて、これは私がこのコードを書く方法です。

4

DateTimeは構造体であるため、nullになることはありません。

私は2つのオプションを考えることができます:あなたは本当にヌルをサポートしたい場合はNULL可能のDateTimeを作成するためにDateTime?を使用し、

  1. 代わりに、それは単に本当の値が設定されていることを示し、デフォルト値にDateTime値を設定するには、アプリケーションに適切な場合があります。このデフォルト値の場合は、default(DateTime)またはDateTime.MinValueのいずれかを使用できます。

関連する問題