diff options
| -rw-r--r-- | 5/8.c | 33 |
1 files changed, 33 insertions, 0 deletions
@@ -0,0 +1,33 @@ +#include <stdio.h> + +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 |
