Подскажите такой момент ,есть код который должен высчитывать разницу до определенного времени ,где day означает день(с 7 -23) или ночь (23-7)
суть в том что при прохождении данной функции ночью к дате должен быть добавлен 1 день например
проверка происходит 22.02.2013 23.01
значит TimeEnd (блок else) должен быть уже завтрашним днем тоесть 23.02.2013 07.01
возможно при инициализации строки
Код:
DateTime TimeEnd = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 07, 00, 01);
указывать +1 день если проверка производиться в период с (23.00 до 23.59) ? и как оно себя поведет например 31 числа ? перепрыгнет ли на следующий месяц?
В текущей реализации разница ночью получаеться отрицательная (-16 часов ),видимо что то не правильно
Код:
static void CheckTime(bool day)
{
TimeSpan diff = new TimeSpan();
if (day)
{
DateTime TimeNow = DateTime.Now;
DateTime TimeEnd = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 00, 01);
diff = TimeEnd - TimeNow;
}
else
{
DateTime TimeNow = DateTime.Now;
DateTime TimeEnd = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 07, 00, 01);
if (TimeNow.Hour == 23)
{
DateTime.Today.AddDays(1);
}
Console.WriteLine("Выполняю действие " + TimeEnd + "-" + TimeNow );
diff = TimeEnd - TimeNow;
}
}
Спасибо.
ADD
Ошибся наверно с переменными должно быть так
Код:
if (TimeNow.Hour == 23)
{
TimeEnd.AddDays(1);
}
пишу службу для муз плеера которая высчитывает при проверке время до запуска или выключения плеера,проверка может проводиться в любой момент