Вы можете рассчитать начало диапазона, разделив общее количество минут на ваш интервал, а затем вычтя остаток от общего количества минут.После этого вы можете легко получить конец диапазона.
Во-первых, вам нужно получить часть времени из вашего объекта DateTime
как TimeSpan
, используя DateTime.TimeOfDay
.Затем используйте TimeSpan.TotalMinutes
.
Вот хорошее начало:
public class TimeRange
{
public TimeRange(TimeSpan from, TimeSpan to)
{
From = from;
To = to;
}
public TimeSpan From { get; set; }
public TimeSpan To { get; set; }
}
public TimeRange GetRange(DateTime d, int minutesInterval)
{
TimeSpan time = d.TimeOfDay;
var from = time.TotalMinutes - (time.TotalMinutes % minutesInterval);
var to = from + minutesInterval;
return new TimeRange(TimeSpan.FromMinutes(from), TimeSpan.FromMinutes(to));
}
Для ясности я создал простой класс с именем TimeRange
, представляющий начало и конецдиапазона интервалов.Вы можете, однако, не стесняйтесь обращаться с этим по-другому.
Использование:
DateTime d = DateTime.Now;
TimeRange range = GetRange(d, 60);
//TimeRange range = GetRange(d, 15);
Console.WriteLine("From: {0}\r\nTo: {1}", range.From, range.To);
Попробуйте онлайн .