diff options
Diffstat (limited to 'main.c')
| -rw-r--r-- | main.c | 67 |
1 files changed, 43 insertions, 24 deletions
@@ -1,34 +1,35 @@ -#include <cairo/cairo-pdf.h> -#include <cairo/cairo.h> +/* Standard Libraries */ #include <string.h> #include <stdio.h> #include <stdlib.h> #include <math.h> #include <ctype.h> #include <unistd.h> -#include "include/color.h" -#include "include/date.h" -#include "include/draw.h" +#include <time.h> + +/* Cairo Libraries */ +#include <cairo/cairo-pdf.h> +#include <cairo/cairo.h> -#define US_LETTER_PAPER_WIDTH 8.5; -#define US_LETTER_PAPER_HEIGHT 11; +/* calp Libraries */ +#include "color.h" +#include "date.h" +#include "draw.h" int main (int argc, char *argv[]) { - int rows = 5; - int columns = 7; - double margin = 0.5; + /* Dimension initialization */ + int rows = 5; /* Number of weeks in a month */ + int columns = 7; /* Number of days in a week */ + double margin = 0.5; /* 0.5" */ int number_of_days = 28; double month_origin_x = margin; double month_origin_y = 3.0; - - double paper_width = US_LETTER_PAPER_WIDTH; - double paper_height = US_LETTER_PAPER_HEIGHT; - + double paper_width = 8.5; + double paper_height = 11; double month_width = paper_width - (month_origin_x * 2); double month_height = paper_height - month_origin_y - margin; - double day_box_width = month_width / columns; double day_box_height = month_height / rows; @@ -44,35 +45,53 @@ int main (int argc, char *argv[]) { margin, /* m */ }; - char date_strings[number_of_days][2]; - char months[12][10] = { + /* Date Setup */ + char *months[] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; int days_in_month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; + const char *weekday_names[] = { + "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" + }; - char weekday_abbr[7][5] = { - "Su", "Mo", "Tue", "Wed", - "Thurs", "Fri", "Sat" + const char *weekdays_abbr[] = { + "Su", "Mo", "Tue", "Wed", "Thurs", "Fri", "Sat" }; - cairo_surface_t * surface = cairo_pdf_surface_create("0.pdf", paper_width * 72, paper_height * 72); + int year = 2025; + int month = 2; + + struct tm day; + day.tm_mon = month - 1; + day.tm_mday = 1; + day.tm_year = year - 1900; + + /* tm.hour, tm_min, & tm_sec are not used, but need to be zeroed. */ + day.tm_hour = 0; + day.tm_min = 0; + day.tm_sec = 0; + + mktime(&day); + + cairo_surface_t * surface = cairo_pdf_surface_create("0.pdf", dim.pw * 72, dim.ph * 72); cairo_t *cr = cairo_create(surface); + cairo_scale(cr, 72, 72); - cairo_set_line_width(cr, 0.03); set_color(cr, "BLACK"); + cairo_set_line_width (cr, 0.03); + draw_calendar(cr, month_origin_x, month_origin_y, dim); set_color(cr, "GRAY"); - draw_numbers(cr, month_origin_x, month_origin_y, dim, 6, number_of_days); + draw_numbers(cr, month_origin_x, month_origin_y, dim, day.tm_wday, number_of_days); draw_month_name(cr, months[1], dim); /* Clean Up */ cairo_destroy(cr); cairo_surface_destroy(surface); - return(0); } |
