Для получения трехминутных значений времени (например, 15.02.2012 07:00:00, 15.02.2012 07:03:00, 15.02.2012 07:06:00, ..., 15.02.2012 07:57: 00) Я использую следующий код:
static private DateTime CurrentTime (DateTime now)
{
DateTime val;
val = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, 0)
.AddMinutes(((now.Minute) / 3) * 3 - now.Minute);
return val;
}
и использую его в следующем коде:
static void Main(string[] args)
{
DateTime ts = new DateTime(2012, 2, 15, 08, 1, 0);
DateTime ts1 = new DateTime(2012, 2, 15, 7, 59, 58);
Console.WriteLine(ts.ToString("dd.MM.yyyy HH:mm:ss.fff") + " is " + CurrentTime(ts).ToString("dd.MM.yyyy HH:mm:ss.fff"));
Console.WriteLine(ts1.ToString("dd.MM.yyyy HH:mm:ss.fff") + " is " + CurrentTime(ts1).ToString("dd.MM.yyyy HH:mm:ss.fff"));
}
И вывод:
15.02.2012 08:01:00.000 is 15.02.2012 08:00:00.000
15.02.2012 07:59:58.000 is 15.02.2012 07:57:00.000
Но во второй строке яполучаю ошибку - вместо 15.02.2012 07: 57: 00.000 должна быть 15.02.2012 08: 00: 00.000.Как исправить эту ошибку?Благодаря.