X-Git-Url: http://pileus.org/git/?p=lackey;a=blobdiff_plain;f=src%2Fdate.h;h=85fb805ef2c352911162f2c5111dae658178a6e4;hp=189cd173898072e8a5f76e9b6652f9c32bc95b61;hb=d45541aeb31a0e34a2a43df0e112f1f720f80abf;hpb=a8c24ecfdee86b9ea9c35469f717fa3cf1b9b6ab diff --git a/src/date.h b/src/date.h index 189cd17..85fb805 100644 --- a/src/date.h +++ b/src/date.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Andy Spencer + * Copyright (C) 2012-2013 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 @@ -15,13 +15,15 @@ * along with this program. If not, see . */ -/* Time types */ +/* UTC time stamp */ typedef long long stamp_t; +/* Local time type */ typedef int year_t; typedef int day_t; typedef int hour_t; typedef int min_t; +typedef int sec_t; typedef enum { JAN = 0, @@ -54,15 +56,17 @@ typedef struct { day_t day; hour_t hour; min_t min; + sec_t sec; } date_t; /* Global data */ -extern year_t YEAR; -extern month_t MONTH; -extern day_t DAY; +extern date_t NOW; // current wall clock time, refreshed at 10 Hz +extern date_t SEL; // date and time the user is looking at /* Initialize */ void date_init(void); +void date_sync(void); +void date_config(const char *group, const char *name, const char *key, const char *value); /* Time functions */ int is_leap_year(year_t year); @@ -75,9 +79,13 @@ day_t start_of_week(year_t year, month_t month, day_t day); void add_days(year_t *year, month_t *month, day_t *day, int days); void add_months(year_t *year, month_t *month, int months); -stamp_t get_stamp(date_t *date); +/* Date functions */ +date_t get_date(stamp_t stamp); +stamp_t get_stamp(date_t date); int get_mins(date_t *start, date_t *end); +int get_secs(date_t *start, date_t *end); int compare(date_t *a, date_t *b); +int same_day(date_t *a, date_t *b); int before(date_t *start, int year, int month, int day, int hour, int min); int all_day(date_t *start, date_t *end);