Получите даты перехода перехода на летнее время часовых поясов в C

Функция, которая обрабатывает событие, должна выглядеть следующим образом:

function calc_keydownHandler(e){
var target = e.target;
//do something with the target now
}

Поскольку у вас есть аргумент target, ссылка будет target.target, что не имеет смысла.

8
задан Lance Roberts 25 June 2009 в 23:17
поделиться

4 ответа

Я не уверен, что существует хороший межплатформенный способ сделать это, но существует программный интерфейс к /usr/share/zoneinfo файлы (или по крайней мере описание формата) в tzfile.h, (доступный на Mac OS X и Linux).

Windows использует немного отличающиеся отображения от tzinfo, но существует таблица преобразования, Вы могли использовать для generify свой интерфейс между Windows и Unix.

2
ответ дан 5 December 2019 в 20:20
поделиться

Портативный и последовательный способ иметь дело с этим состоит в том, чтобы создать круглогодичную таблицу смещения TZ (в течение каждого дня в текущем году в текущем часовом поясе) при запуске приложения. Разрешите полночь по местному времени каждого дня к UTC (GMT) и запишите эффективное смещение часового пояса в отношении UTC (GMT) в течение рассматриваемого дня. Ищите переходы в эффективных смещениях TZ круглый год (переходы укажут на изменения DST.) Этот подход является последовательным и портативным в этом, только зависит от localtime/gmtime функционирование надежно на рассматриваемой платформе, и возвратит результаты, полностью согласовывающиеся с localtime/gmtime вызовы. Однако это становится немного более сложным, если Вы запрашиваете информацию DST для других часовых поясов (чем часовой пояс процесса по умолчанию.)

Можно также непосредственно использовать базу данных TZ/Olson (код, доступный и для *, отклоняют и для Windows), для максимальной гибкости, но если базовое использование времени выполнения/ОС та же самая информация о часовом поясе (и приложение использует информацию о часовом поясе TZ/Olson и gmtime/localtime попеременно), затем Вы находитесь в для неприятных неожиданностей.

5
ответ дан 5 December 2019 в 20:20
поделиться

В C, там простой, межплатформенный способ получить даты, что данный часовой пояс> начинает и заканчивает переход на летнее время?

Нет.

Я реализовал поддержку TZ на VMS для DEC назад в конце 90-х.

Во-первых, нет никакого межплатформенного решения.

Во-вторых, даты варьируются из года в год и также законодательным указом. Нет на самом деле никакого полностью надежного программного решения.

1
ответ дан 5 December 2019 в 20:20
поделиться

Если вам нужен C ++ (не C), посмотрите библиотеку boost :: date_time http://www.boost.org/doc/libs/1_38_0/doc/html/date_time. html

0
ответ дан 5 December 2019 в 20:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: