#include <stdio.h> #include "dates.h" int is_leap_year (int year) { if (year % 4 == 0) if (year % 100 == 0) if (year % 400 == 0) return 1; else return 0; else return 1; else return 0; } int days_in_month (int month, int year) { if (month == 2) if (is_leap_year (year)) return 29; else return 28; else if (month == 4 || month == 6 || month == 9 || month == 11) return 30; else return 31; } void date_print (date *d) { printf ("%02d.%02d.%04d", d->day, d->month, d->year); } int date_set (date *d, char day, char month, int year) { d->year = year; if (month > 0 && month <= 12) d->month = month; else return 0; if (day > 0 && day <= days_in_month (month, year)) d->day = day; else return 0; return 1; } void date_next (date *d) { d->day++; if (d->day > days_in_month (d->month, d->year)) { d->month++; d->day = 1; if (d->month > 12) { d->year++; d->month = 1; } } }