Ru-MaNGOS

Вернуться   Ru-MaNGOS > Документация > Языки программирования

Важная информация

Языки программирования Изучаем С++, Sql, php, Lua, Python

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 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 вне форума   Ответить с цитированием
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Текущее время: 08:24. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot