2 つの の間の時間のリストを包括的に提供する関数を作成しましたDateTime
。
しかし、結局のところ、非常に読みやすいとは言えず、私が取り組んでいるプロジェクトでは単体テストがまったく行われていないにもかかわらず、単体テストを実行したくなります。
だから私の質問は、これを書くためのより読みやすく、または効率的な方法はありますか?:
コード:
private List<DateTime> GetHoursForEvent(DateTime start, DateTime end)
{
var hours = new List<DateTime>();
DateTime startFloor = Convert.ToDateTime(start.ToString("MM/dd/yyyy HH:00:00"));
DateTime endFloor = Convert.ToDateTime(end.ToString("MM/dd/yyyy HH:00:00"));
for (double dblDate = startFloor.ToOADate();
dblDate <= endFloor.ToOADate();
dblDate += (1.0 / 24.0))
{
hours.Add(DateTime.FromOADate(dblDate));
}
return hours;
}
入力:
DateTime start = Convert.ToDateTime("2012-04-01 04:22:00");
DateTime end = Convert.ToDateTime("2012-04-02 00:05:00");
結果:
2012-04-01 04:00:00
2012-04-01 05:00:00
2012-04-01 06:00:00
2012-04-01 07:00:00
2012-04-01 08:00:00
2012-04-01 09:00:00
2012-04-01 10:00:00
2012-04-01 11:00:00
2012-04-01 12:00:00
2012-04-01 13:00:00
2012-04-01 14:00:00
2012-04-01 15:00:00
2012-04-01 16:00:00
2012-04-01 17:00:00
2012-04-01 18:00:00
2012-04-01 19:00:00
2012-04-01 20:00:00
2012-04-01 21:00:00
2012-04-01 22:00:00
2012-04-01 23:00:00
2012-04-02 00:00:00
車輪を再発明しているような気がします。