DateTime RoundDown(DateTime dt, TimeSpan d)
{
return new DateTime((dt.Ticks / d.Ticks) * d.Ticks);
}
Example:
var dt1 = RoundDown(DateTime.Parse("2011-08-11 16:59"), TimeSpan.FromMinutes(30));
// dt1 == {11/08/2011 16:30:00}
var dt2 = RoundDown(DateTime.Parse("2011-08-11 17:00"), TimeSpan.FromMinutes(30));
// dt2 == {11/08/2011 17:00:00}
var dt3 = RoundDown(DateTime.Parse("2011-08-11 17:01"), TimeSpan.FromMinutes(30));
// dt3 == {11/08/2011 17:00:00}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…