Параметр tz можно получить используя битовые операции математического И (&) и математического ИЛИ (|).
Например нужно получить tz для часового пояса (-01:00) Азорские о-ва. (-3600) dst - нет (0x08000000).
1) К часовому поясу применяется математическое И по маске 0xf000ffff.
-3600 & 0xf000ffff -268373520
2) К результату применяется математическое ИЛИ по маске соответствующей dst.
-268373520 | 0x8000000 -134155792
tz=-134155792
tz=-134155792
1) К tz применяется математическое И по маске 0xffff.
-134155792 & 0xffff 61936
2) К результату применяется математическое ИЛИ по маске 0xffff0000.
61936 | 0xffff0000 -3600
Часовой пояс (-01:00) Азорские о-ва.
tz=-134155792 в hex 0xf800f1f0
1) Значение по маске 0x0fff0000 показывает dst.
0x08000000 - нет.
|