X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=src%2Fdate.c;h=c7e5cbde8da081cfb2f810e85618072d0fff92dc;hb=e8d71b7dc27508ffe496116244f9dceed91b7b5e;hp=2e1f7f8af1bd0a2666896454acba64e0a0732e9d;hpb=01371b6e19aafedb854146b00ce8fb1a90e3b216;p=lackey diff --git a/src/date.c b/src/date.c index 2e1f7f8..c7e5cbd 100644 --- a/src/date.c +++ b/src/date.c @@ -37,10 +37,10 @@ void date_init(void) MONTH = tm->tm_mon; DAY = tm->tm_mday-1; - // Testing */ - //YEAR = 2009; - //MONTH = MAY; - //DAY = 1; + /* Testing */ + //YEAR = 2008; + //MONTH = OCT; + //DAY = 21; } /* Time functions */ @@ -126,6 +126,33 @@ int get_mins(date_t *start, date_t *end) return (get_time(end)-get_time(start))/60; } +int compare(date_t *a, date_t *b) +{ + int rval = a->year < b->year ? -1 : a->year > b->year ? 1 : + a->month < b->month ? -1 : a->month > b->month ? 1 : + a->day < b->day ? -1 : a->day > b->day ? 1 : + a->hour < b->hour ? -1 : a->hour > b->hour ? 1 : + a->min < b->min ? -1 : a->min > b->min ? 1 : 0; + return rval; +} + +int before(date_t *start, int year, int month, int day, int hour, int min) +{ + return compare(start, &(date_t){year, month, day, hour, min}) < 0; +} + +int all_day(date_t *start, date_t *end) +{ + date_t test = *start; + add_days(&test.year, &test.month, &test.day, 1); + return compare(&test, end) <= 0; +} + +int no_date(date_t *date) +{ + return date->year == 0; +} + /* Debug functions */ const char *month_to_str(month_t month) {