Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Определить часовой пояс (временную зону)


Автор: neosapient 7.11.2013, 12:58
Здравствуйте.

Код

#include <ctime>
#include <iostream>

int main()
{
    std::cout << "GTM" << (_timezone>0 ? "+" : "" ) << _timezone/3600 << std::endl;
}

Код возвращает GTM+8, хотя я живу в московском часовом поясе (GTM+4)

Как правильно работать с переменной _timezone?

Автор: vinter 7.11.2013, 13:34
Похоже, что эта переменная установлена в своё значение по умолчанию.
Попробуй следующий код:
Код

#include <Windows.h>
#include <iostream>

int main()
{
    TIME_ZONE_INFORMATION zoneInfo;
    GetTimeZoneInformation(&zoneInfo);
   
    LONG difference = -zoneInfo.Bias / 60;
    std::cout << "GMT" << (difference > 0 ? "+" : "") << difference << std::endl;
}

P.S. Правильно "GMT", а не "GTM"

Автор: neosapient 7.11.2013, 18:17
vinter, спасибо!  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)