#include #include #include #include period_t* period_create(uint16_t start, uint16_t end) { period_t *new_period = malloc(sizeof(period_t)); new_period->start = start; new_period->end = end; return new_period; } int period_includes_time(period_t *period, struct tm *time_struct) { uint16_t start = period->start; uint16_t end = period->end; time_t timestamp = time_struct->tm_hour * 60; timestamp += time_struct->tm_min; // "normal" timespan if(start < end) { if(start <= timestamp && end > timestamp) { return 1; } return 0; } // timespan goes through 00:00 if(end < start) { if(start >= timestamp && end < timestamp) { return 1; } return 0; } return 0; }