Есть ли какой-либо математический способ сократить 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));
