For example:
2011-08-11 16:59 becomes 2011-08-11 16:30
I would say something like that
var time = DateTime.Now;
var rounded = time.AddMinutes(
time.Minute>30 ? -(time.Minute-30) : -time.Minute)
And you could even do your own extension
public static class TimeHelper {
public static DateTime RoundDown (this DateTime time)
{
return time.AddMinutes(
time.Minute>30 ? -(time.Minute-30) : -time.Minute);
}
}
EDIT
This function cut's also the seconds / milliseconds if necessary. Thanks for the hint.
public static DateTime RoundDown(this DateTime time)
{
return time.Subtract(
new TimeSpan(0, 0, time.Minute > 30 ? (time.Minute - 30) : time.Minute,
time.Second, time.Millisecond));
}