45 lines
782 B
C
45 lines
782 B
C
|
#include <stdlib.h>
|
||
|
|
||
|
#include <logger.h>
|
||
|
#include <constants.h>
|
||
|
#include <models/period.h>
|
||
|
|
||
|
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, uint16_t timestamp)
|
||
|
{
|
||
|
uint16_t start = period->start;
|
||
|
uint16_t end = period->end;
|
||
|
|
||
|
// "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;
|
||
|
}
|