/*
- * Copyright (C) 2012 Andy Spencer <andy753421@gmail.com>
- *
+ * Copyright (C) 2012-2013 Andy Spencer <andy753421@gmail.com>
+ *
* 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 <http://www.gnu.org/licenses/>.
*/
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);
/* Time functions */
int is_leap_year(year_t year);
stamp_t get_stamp(date_t *date);
int get_mins(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);
+int no_date(date_t *date);
/* Time to string functions */
const char *month_to_str(month_t month);
const char *day_to_st(wday_t day);
const char *day_to_str(wday_t day);
const char *day_to_string(wday_t day);
-
-/* Tests */
-void date_test(void);