]> Pileus Git - lackey/blobdiff - src/date.c
Add some special formatting
[lackey] / src / date.c
index 2e1f7f8af1bd0a2666896454acba64e0a0732e9d..c7e5cbde8da081cfb2f810e85618072d0fff92dc 100644 (file)
@@ -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)
 {