Показать сообщение отдельно
Старый 22.02.2013, 09:55   #1
partizanes
Пользователь
 
Аватар для partizanes
 
Регистрация: 15.03.2010
Адрес: Беларусь,Витебск
Сообщений: 93
Сказал(а) спасибо: 97
Поблагодарили 36 раз(а) в 11 сообщениях
partizanes На верном пути
Отправить сообщение для partizanes с помощью ICQ Отправить сообщение для partizanes с помощью Skype™
По умолчанию DateTime & TimeSpan C#

Подскажите такой момент ,есть код который должен высчитывать разницу до определенного времени ,где 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);
                }
__________________
Когда-нибудь на оффе поставят Mangos...

Последний раз редактировалось partizanes; 22.02.2013 в 10:18.
partizanes вне форума   Ответить с цитированием