Я разрабатываю код для устройства, на котором библиотека даты и времени недоступна (примечание: поплавки также недоступны), поэтому я должен выполнить math myslef.
Моя временная метка - секунды с 1 января 2000 года (в UTC).В конфигурации устройства у меня есть:
- текущий часовой пояс как количество часов +/- от UTC
- dst как количество часов для добавления
Iнужно знать:
- текущий день недели
- текущий час
Расчет текущего часа довольно прост:
timestamp % 86400 # seconds from midnight
Расчет дня недели (1-понедельник, 7-воскресенье):
dayofweek = (timestamp - 86400) % (86400*7) / 86400
if dayofweek = 0:
dayofweek = 7
примечания:
- 86400 = секунд за один день
Но перед расчетами я должен: 1. добавить часы часового пояса 2. добавить часы DST
Проблема в том, как рассчитать, следует ли добавлять часы DST (только для европейского летнего времени) или нет?Я должен сделать это эффективно, потому что у меня очень ограниченная вычислительная мощность, и мне нужно сделать это как можно быстрее: -)