]> Pileus Git - lackey/commitdiff
Fix some time keeping bugs
authorAndy Spencer <andy753421@gmail.com>
Fri, 5 Oct 2012 06:14:16 +0000 (06:14 +0000)
committerAndy Spencer <andy753421@gmail.com>
Fri, 5 Oct 2012 06:14:16 +0000 (06:14 +0000)
src/main.c
src/main.h
src/test.c
src/util.c
view/day.c
view/week.c
view/year.c

index 1327a8240a6327882cb237a3800cf8b39224ffc3..6ae9798fed3509ed9374c44f65bc388d24bb4e25 100644 (file)
 #include <stdarg.h>
 #include <stdlib.h>
 #include <signal.h>
+#include <time.h>
 #include <ncurses.h>
 
 #include "main.h"
 #include "screen.h"
 
+/* Debugging */
+int YEAR  = 2012;
+int MONTH = 8;
+int DAY   = 29;
+
 /* Static data */
 static FILE *debug_fd = NULL;
 
@@ -83,6 +89,13 @@ int main(int argc, char **argv)
        act.sa_handler = on_sigwinch;
        sigaction(SIGWINCH, &act, NULL);
 
+       /* Time setup */
+       time_t sec = time(NULL);
+       struct tm *tm = localtime(&sec);
+       YEAR  = tm->tm_year+1900;
+       MONTH = tm->tm_mon;
+       DAY   = tm->tm_mday-1;
+
        /* Curses setup */
        initscr();
        cbreak();
index 41393096a6b9c182b283cbd2c20c61111e530799..dd7c3fbd1d2ab8ef3d6d023c76bd8d55ac7e143b 100644 (file)
@@ -19,9 +19,9 @@
 #define COLOR_ERROR 2
 
 /* Debugging */
-const static int YEAR  = 2012;
-const static int MONTH = 8;
-const static int DAY   = 29;
+extern int YEAR;
+extern int MONTH;
+extern int DAY;
 
 /* Debug functions */
 int debug(char *fmt, ...);
index 07058f61b62e488cc4ac7a7159b00bce01e232b6..86eb8c50480d59dcc70f437d25ab933e27c0bf7f 100644 (file)
 
 #include "util.h"
 
+int YEAR  = 2012;
+int MONTH = 8;
+int DAY   = 29;
+
 int main(int argc, char **argv)
 {
        test_time();
index 3d6aa200f542e830e77fbe56dc3010dd220a1d83..688cc949813bfd6ba3667db026d17fadfbb6b8e1 100644 (file)
@@ -55,18 +55,18 @@ wday_t day_of_week(year_t year, month_t month, day_t day)
 {
        static int tmp[] = {0, 3, 2, 5, 0, 3,
                            5, 1, 4, 6, 2, 4};
-       if (month < 3)
+       if (month < MAR)
                year--;
        int start = year + year / 4
                         - year / 100
                         + year / 400
                         + tmp[month];
-       return (start + day) % 7;
+       return (start + day + 1) % 7;
 }
 
 wday_t start_of_month(year_t year, month_t month)
 {
-       return day_of_week(year, month, 1);
+       return day_of_week(year, month, 0);
 }
 
 void add_days(year_t *year, month_t *month, day_t *day, int days)
index 3f495737f43205dfdae6f46adbc5abe1e4a97b3d..58e65da3ce9c672f8163abd46848bba88459d158 100644 (file)
@@ -37,8 +37,8 @@ void day_draw(void)
        const char *dstr = day_to_string(day_of_week(YEAR, MONTH, DAY));
 
        /* Print Header */
-       mvwprintw(win, 0, 0, "%s, %s %d", dstr, mstr, DAY);
-       mvwprintw(win, 0, COLS-10, "%d-%02d-%02d", YEAR, MONTH, DAY);
+       mvwprintw(win, 0, 0, "%s, %s %d", dstr, mstr, DAY+1);
+       mvwprintw(win, 0, COLS-10, "%d-%02d-%02d", YEAR, MONTH, DAY+1);
        mvwhline(win, 1, 0, ACS_HLINE, COLS);
 
        /* Print times */
index 60cb1762d7112ffecb3589805341e70f1794ea22..e9988e954ffa254a2349f402433b470d28b749ab 100644 (file)
@@ -49,7 +49,7 @@ void week_draw(void)
        for (int d = 0; d < 5; d++) {
                // FIXME..
                const char *str = hstep >= 10 ? day_to_string(d+MON) : day_to_str(d+MON);
-               mvwprintw(win, 0, x+ROUND(d*hstep), "%02d/%02d", month, day);
+               mvwprintw(win, 0, x+ROUND(d*hstep), "%02d/%02d", month+1, day+1);
                mvwprintw(win, 1, x+ROUND(d*hstep), "%s", str);
                add_days(&year, &month, &day, 1);
        }
index 1505494db9aec49dfaa6d25e7b6a9c5c73ac6c8a..d20f22fe4bd86cc2e8eeb41c74786c2bf765ee11 100644 (file)
@@ -40,7 +40,7 @@ static void print_month(month_t month, int y, int x)
        for (int d = 0; d < days; d++) {
                int row = (start + d) / 7;
                int col = (start + d) % 7;
-               mvwprintw(win, y+2+row, x+col*3, "%d", d+1);
+               mvwprintw(win, y+2+row, x+col*3, "%2d", d+1);
        }
 }