From 5a0c5630e0bcc5e06beb856c666f7eaedd1c9559 Mon Sep 17 00:00:00 2001 From: foswret Date: Thu, 11 Dec 2025 23:40:02 -0600 Subject: updated Makefile, renamed output to calp and main.c/main.o to calp.c/calp.o --- src/calp.c | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 src/calp.c (limited to 'src/calp.c') diff --git a/src/calp.c b/src/calp.c new file mode 100644 index 0000000..278538e --- /dev/null +++ b/src/calp.c @@ -0,0 +1,102 @@ +/* Standard Libraries */ +#include +#include +#include +#include +#include +#include +#include + +/* Cairo Libraries */ +#include +#include + +/* calp Libraries */ +#include "color.h" +#include "date.h" +#include "draw.h" + +// int main (int argc, char *argv[]) { +int main (void) { + /* Dimension initialization */ + int rows = 6; /* 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 = 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; + + struct dimensions dim = { + paper_width, /* pw */ + paper_height, /* ph */ + month_width, /* mw */ + month_height, /* mh */ + day_box_width, /* bw */ + day_box_height, /* bh */ + rows, /* r */ + columns, /* c */ + margin, /* m */ + }; + + /* 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" + // }; + + // const char *weekdays_abbr[] = { + // "Su", "Mo", "Tue", "Wed", "Thurs", "Fri", "Sat" + // }; + + 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); + set_color(cr, "GRAY"); + cairo_set_line_width (cr, 0.03); + + + clock_t begin = clock(); + draw_calendar(cr, month_origin_x, month_origin_y, dim); + 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); + + clock_t end = clock(); + double time_spent = (double)(end - begin) / CLOCKS_PER_SEC; + printf("Execution Time: %.3fs\n", time_spent); + return(0); +} -- cgit v1.2.3