Есть ли какой-либо математический способ сократить DateTime до определенного часа, дня или около того? Совпадает с округлением десятичного числа до int.
Period.Day
Если первоначальное значение было 2011-01-01 13:00:00
, оно заканчивается в 2011-01-01 00:00:00
если Period.Hour
Если первоначальное значение было 2011-03-11 13:32:00
, оно заканчивается в 2011-03-11 13:00:00
Я думаю о чем-то вроде ниже. Это, конечно, отлично работает, но range
-array в любом случае повторяется. Лучше, если бы я мог рассчитывать непосредственно на этой итерации, а не на нее. Но someType не может быть помещен в эту итерацию (это зависит от someType).
if (someType == Period.Day)
range.ForEach(d => d.time = new DateTime(d.time.Year, d.time.Month, d.time.Day,0,0,0));
if (someType == Period.Hour)
range.ForEach(d => d.time = new DateTime(d.time.Year, d.time.Month, d.time.Day, d.time.Hour, 0, 0));