typedef struct datetime { struct date { int year; int month; // 0-11 int day; // 0-6 } date; struct time { int hours; // 0-23 int minutes; // 0-59 int seconds; // 0-60 (not 59 because leap seconds) } time; } datetime; void datetime_init(datetime* dt); // Times are expected to be UTC void datetime_set_date(datetime* dt, int year, int month, int day); void datetime_set_time(datetime* dt, int hours, int minutes, int seconds); void datetime_diff(datetime* dt_from, datetime* dt_to, datetime* dt_res); void datetime_print(datetime* dt);