CTime странное поведение

Тема в разделе "MS Visual C++", создана пользователем klizardin, 1 июн 2004.

Статус темы:
Закрыта.
  1. klizardin

    klizardin Гость

    См код.

    CTime time1 = CTime::GetCurrentTime();
    CTime time2 = CTime(time1.GetYear(),time1.GetMonth(),time1.GetDay(),0,0,0);
    // далее начинается фантастика.
    double t1 = time1.GetTime() /(24.*60*60);
    double t2 = time2.GetTime()/(24.*60*60);
    // почемуто если t1 получаем как 12570.443...
    // а t2 == 12569.999
    // т.е. !!!!! получаем что в сутках не 24 часа -- большая Ж(

    Обьясните как такое может быть, может во всем виноваты локальные настройки хотя странно это.
     
  2. klizardin

    klizardin Гость

    Оказывается что CTime возращает тип time_t который определен как количество секунд от некоторой даты (Jan 01 1970) в единицах UTC (coordinated universal time) т.е. по гринвичу. В чем и оказалась проблема. Спасла _timezone (time.h)переменная которая предоставляет информацию о текущем часовом поясе. (информацию _timezone можно найти в описании функции _tzset() в MSDN).

    И еще маленький баг с конструктором CTime() последний параметр который имеет значение и определяет то как будет интерпретироваться время.
     
  3. Guest

    Guest Гость

    Не пойму как работать срестром в Microsoft Visual Basic
     
  4. Guest

    Guest Гость

    Не пойму как работать срестром в Microsoft Visual Basic ?
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей