* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* 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,
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);
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);