読者です 読者をやめる 読者になる 読者になる

ちょまどデバッグ ちゃぷたー1

なんでこれを書きたくなったかはめんどくさいので省きます。
便利プロパティを知らない人が多いっぽい感じなので、少しでも便利プロパティを知って楽にコードを書きましょう。

1 日の中で何秒経過したか知りたい!

.NET では、DateTime オブジェクトから DateTime オブジェクトを引くと TimeSpan オブジェクトが返ってきます。
また、DateTime#Date プロパティはレシーバの年月日部分を取得することができます。

ということは、DateTime.Now から DateTime.Now.Date を引けば、今日の零時からの経過時間を求めることができますね。

var elapsedTimeSpanOfDay = today - today.Date;

さて、秒で知りたいということなので、上記の elapsedTimeSpanOfDay では不完全ですね。
ということで、TimeSpan#TotalSeconds プロパティを使えば経過時間を秒単位に変換したものを取得することができます。

以下の elapsedSecondsOfDay が答えです。

var elapsedSecondsOfDay = ( today - today.Date ).TotalSeconds;

1 年の中で、何日と何秒経過したか知りたい!!

gist の中でこのように書いたわけですが:

var daysOfYear = ( today.DayOfYear - 1 ) + elapsedSecondsOfDay / SecondsPerDay;

これも TimeSpan で求められる気がしませんか?

var firstDay = new DateTime( today.Year, 1, 1 );

var daysOfYear = ( today - firstDay ).TotalDays;

(๑´ڡ`๑) よさそう