LoginSignup
2
0

More than 3 years have passed since last update.

C# DateTimeから日付のみを取得する DateTime.Date とDateTime.Dayの違い

Posted at

DateTimeから日付のみを取得する

生年月日から年齢を取得する処理を書こうとする中でDateTime型のオブジェクトから日付を取得しようとしたところ、DateTime.DateとDateTime.Dayというふたつの取得方法がありました。
一度知れば大きく異なる2者ですが、両者について言及されている記事が見つからなかったので簡単にまとめます。

結論から言えば、今回の場合取得したいものが年月を無視した日付単独の値だったので、DateTime.Dayを用いました

DateTime.DateはDateTimeの時刻を00:00:00にしたものを返します。
対してDateTime.DayはDateTimeの日付部分をInt型で返します。

qiita DateTime.date,DateTime.Day
DateTime today = DateTime.now;
DateTime dateToday = today.Date;
int dayToday = today.Day;

それぞれ2行目がDateTime.Dateプロパティ、3行目がDateTime.Dayを用いて言います。
出力すると以下のようになります。

qiita WriteLineでの出力
Console.WriteLine( today );
Console.WriteLine( dateToday );
Console.WriteLine( dayToday );
qiita 出力
2021/05/25 23:56:25
2021/05/25 0:00:00
25

DateTime.Dateで獲ってくる値はDatTime型
DateTime.DayはInt型でかつ年月の情報はありません。

DateとDayでややこしさがありますが、全く別物ですね。

Dayで取得した場合はそのまま整数の値として使用できます。
Dateで取得した場合、同じくDateでの加算減産を行うとTimeSpan型で値を得ることになります。
それについてはまた今度

備忘録程度に

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0