私はDateの部分を平らにし、時間の値だけを保持する必要がある一連のdatetimesを持っています。新しいDateTimeインスタンスを作成するよりも、DateTimeオブジェクトのDate部分を平坦化するための効率的な方法はありますか?
注:このような奇妙なことを行う理由は、Date Partを使用して特定の決定を下す第三者コンポーネントを使用することにあります。また、私はそれを回避する別の方法を見つけましたが、これを達成するためのより効率的な方法があれば、私はまだ不思議です。
私が考えることができる唯一の方法は、同じ日付であるが、個々のソースDTオブジェクトからの時間とともに新しいDateTimeオブジェクトを作成することです。
これは私がまったく気に入らないアプローチの簡単な例です。
DateTime flattenDts(DateTime input)
{
return new DateTime(1, 1, 1, input.Hour, input.Minute, input.Second);
}
ご覧のとおり、これはあまり良くありません。特に何百ものdatetime値がある場合
これを達成するより効率的な方法はありますか?
編集: 第三者のlibとしてtimespanを使用することはできません。 DateTimeパラメータのみを使用します。
TimeSpan time = input.TimeOfDay クリーナー? – LDJ
TimeSpanを使用できます。https://msdn.microsoft.com/en-us/library/system.timespan%28v=vs.110%29.aspx –
サードパーティのコンポーネントにTimeSpan /文字列を使用できますか? DateTimeオブジェクトが必要ですか? – Marco