public static void Main()
TimeSpan interval = TimeSpan.FromHours(6);
DateTime dt = DateTime.Now;
DateTime nextUpdate = RoundTime(dt, interval);
Console.WriteLine("Now : " + dt.ToString("HH:mm:ss.fff"));
Console.WriteLine("Next: " + nextUpdate.ToString("HH:mm:ss.fff"));
private static DateTime RoundTime(DateTime baseTime, TimeSpan interval)
var overflow = baseTime.Ticks % interval.Ticks;
return overflow == 0 ? baseTime : baseTime.AddTicks(interval.Ticks - overflow);