30 lines
1.5 KiB
C
30 lines
1.5 KiB
C
#ifndef SMART_ALARM_TIMEZONES_H
|
|
#define SMART_ALARM_TIMEZONES_H
|
|
#include "lwip/arch.h"
|
|
|
|
typedef struct {
|
|
char zone_name[31]; // Timezone name (e.g., "Europe/Berlin")
|
|
char std_abbr[6]; // Standard time abbreviation
|
|
char dst_abbr[6]; // DST abbreviation
|
|
s8_t std_offset_hours; // Standard time UTC offset hours (-12 to +14)
|
|
u8_t std_offset_mins; // Standard time UTC offset minutes (0-59)
|
|
s8_t dst_offset_hours; // DST UTC offset hours (-12 to +14)
|
|
u8_t dst_offset_mins; // DST UTC offset minutes (0-59)
|
|
u8_t dst_start_month; // DST start month (1-12)
|
|
u8_t dst_start_week; // DST start week (1-5, where 5=last week)
|
|
u8_t dst_start_day; // DST start day of week (0=Sunday..6=Saturday)
|
|
s8_t dst_start_hour; // DST start hour (0-23)
|
|
u8_t dst_start_min; // DST start minute (0-59)
|
|
u8_t dst_end_month; // DST end month (1-12)
|
|
u8_t dst_end_week; // DST end week (1-5, where 5=last week)
|
|
u8_t dst_end_day; // DST end day of week (0=Sunday..6=Saturday)
|
|
u8_t dst_end_hour; // DST end hour (0-23)
|
|
u8_t dst_end_min; // DST end minute (0-59)
|
|
bool has_dst; // 1 if timezone uses DST, 0 otherwise
|
|
u8_t reserved; // Padding for alignment
|
|
} timezone_t;
|
|
extern const timezone_t timezones[461];
|
|
|
|
void timezone_offset(u16_t timezone_index, datetime_t &dt);
|
|
extern volatile u16_t timezone_index;
|
|
#endif //SMART_ALARM_TIMEZONES_H
|