您的位置:首页 > 其它

万年历

2016-01-19 22:03 316 查看
// calendar.c
#include <stdio.h>

char *month_name[] = {"illegal Month", "January", "February", "March",
"April", "May", "June", "July", "August",
"September", "October", "November", "December"};

int day_tab[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}};
//W = [y-1] + [(y-1)/4] - [(y-1)/100] + [(y-1)/400] + D
int main(void)
{
int year, month, day = 1, weekday, first_weekday;
printf("Please input year(1900 ~) & month\n");
scanf("%d %d", &year, &month);
int leap = year%4 == 0 && year%100 != 0 || year%400 == 0;
first_we
4000
ekday = (year-1 + (year-1)/4 - (year-1)/100 + (year-1)/400 + day)%7;    // firstday of year

int i;
for(i = 1; i < month; i++){
day += day_tab[leap][i];
}
weekday = (first_weekday + day-1)%7;        // firstday of month

printf("\n\n");
printf("\t%d\t%s\n\n", year, month_name[month]);
printf(" Sun Mon Tue Wed Thu Fri Sat\n");

for(i = 1; i <= day_tab[leap][month]+weekday; i++){
if(i < weekday+1)
printf("%4c", ' ');         // put space
else
printf("%4d", i-weekday);
if(i % 7 == 0)
printf("\n");
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: