From dca8a74167a4abd4d7962a68144114a2b185fd0d Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Tue, 4 Jan 2022 18:34:36 +0800 Subject: 5.8 --- 5/8.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 5/8.c (limited to '5/8.c') diff --git a/5/8.c b/5/8.c new file mode 100644 index 0000000..d8db47c --- /dev/null +++ b/5/8.c @@ -0,0 +1,33 @@ +#include + +int day_of_year(int year, int month, int day); +void month_day(int year, int yearday, int *pmonth, int *pday); + +int main() { return 0; } + +static char daytab[2][13] = { + {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, + {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}}; + +int day_of_year(int year, int month, int day) { + int i, leap; + + leap = year % 4 == 0 && year % 100 != 0 || year % 400 == 0; + + for (i = 1; i < month; i++) + day += daytab[leap][i]; + + return day; +} + +void month_day(int year, int yearday, int *pmonth, int *pday) { + int i, leap; + + leap = year % 4 == 0 && year % 100 != 0 || year % 400 == 0; + + for (i = 1; yearday > daytab[leap][i]; i++) + yearday -= daytab[leap][i]; + + *pmonth = i; + *pday = yearday; +} \ No newline at end of file -- cgit v1.2.3