なんか微妙に迷った。

◆結論

private static void Main()
{
    var now = DateTimeOffset.Now;
    Console.WriteLine(now);
    Console.WriteLine(now - now.TimeOfDay);
}

TimeOfDayを除けばよろしい。

◆経緯

DateTimeOffsetがあって、それの0時が欲しいなと。start time of dayが欲しいなと。

Offset無しのDateTimeなら新しくDateTimeのインスタンス作り直してもいいんだけど、Offsetついてる。そこに触りたくない。作り直したくない。

Stack Overflow見たらなんか答えあるっしょと思ったが、良く分からんことをしている。

DateTimeOffsetのリファレンスをあたったところ、TimeOfDayというプロパティを発見した。その日の0時からのTimeSpanをくれるらしい。それでもって除算した。とれた。幸せ。

◆結論(2回目)

StartTimeOfDayっつープロパティ生やしてくれねぇかな。TimeOfDay引くんでもいいけど、コードが読みづらいわ。

あと、LINQでnullフィルターを提供してくれねぇか。null許容intの配列から非許容intの配列に変換するのに2メソッドかかってしまう。直観的じゃねぇし。

拡張メソッド書けって?それをお前どこに置くんだ。プロジェクトごとにUtilクラス作れってか?んなことするくらいならNuGetパッケージに固めるわ。