]> Pileus Git - lackey/blobdiff - src/date.c
Fix date and ical test cases
[lackey] / src / date.c
index 9bcf81663906629c95bbf32890ae13026c05946e..4df8ce4241343cacbafe882f2b7d15ae5089724b 100644 (file)
@@ -23,6 +23,7 @@
 #include "date.h"
 
 /* Global data */
+date_t  NOW;
 date_t  SEL;
 
 /* Initialize */
@@ -36,6 +37,19 @@ void date_init(void)
        SEL.day   = tm->tm_mday-1;
 }
 
+void date_sync(void)
+{
+       time_t     sec = time(NULL);
+       struct tm *tm  = localtime(&sec);
+
+       NOW.year  = tm->tm_year+1900;
+       NOW.month = tm->tm_mon;
+       NOW.day   = tm->tm_mday-1;
+       NOW.hour  = tm->tm_hour;
+       NOW.min   = tm->tm_min;
+       NOW.sec   = tm->tm_sec;
+}
+
 /* Time functions */
 int is_leap_year(year_t year)
 {
@@ -129,6 +143,13 @@ int compare(date_t *a, date_t *b)
        return rval;
 }
 
+int same_day(date_t *a, date_t *b)
+{
+       return a->year  == b->year  &&
+              a->month == b->month &&
+              a->day   == b->day;
+}
+
 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;
@@ -187,7 +208,7 @@ const char *day_to_string(wday_t day)
 void date_test(void)
 {
        printf("Info\n");
-       printf("  Year Month     Start Weeks Days\n");
+       printf("  Year   Month       Start   Weeks   Days\n");
        for (int y = 2012; y <= 2012; y++)
        for (int m = JAN;  m <= DEC;  m++) {
                printf("  %-5d",  y);