X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=src%2Fdate.c;h=22104967bc7c214738794926ffa6214bdfd1a920;hb=daded0f3fb930e7758e1009683c0cdb46eada3f6;hp=2e1f7f8af1bd0a2666896454acba64e0a0732e9d;hpb=01371b6e19aafedb854146b00ce8fb1a90e3b216;p=lackey diff --git a/src/date.c b/src/date.c index 2e1f7f8..2210496 100644 --- a/src/date.c +++ b/src/date.c @@ -1,16 +1,16 @@ /* * Copyright (C) 2012 Andy Spencer - * + * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ @@ -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) {