这个程序是已知2000年1月1日是星期六,那如果是已知2006年1月1日为星期日呢,该怎么改,求大神
#include<stdio.h>#define YES 1 /* 定义符号常数"是" */
#define NO 0 /* 定义符号常数"否" */
/* 函数 isleap(): 判断某年是否闰年 */
int isleap(int year)
{
int leap = NO;
if((year%4==0 && year%100!=0 )|| year%400==0)
leap = YES;
return leap;
}
/* 函数 week_of_newyears_day(): 求元旦是星期几 */
int week_of_newyears_day(int year)
{
int n = year-1900;
n = n+(n-1)/4+1;
n = n%7;
return n;
}
int main(int argc,char *argv[])
{
int year, month, day, weekday, len_of_month, i;
printf("\n请输入某年年份: ");
scanf("%d",&year);
printf("\n请输入某年1月1日:");
scanf("%d",&weekday);
printf("\n\n\n %d年\n",year); /* 打印年份 */
for(month=1; month<=12;month=month+1) /* 打印12个月的月历 */
{
printf("\n%d月份\n",month);
printf("------------------------------------------------------\n");
printf("星期日 星期一 星期二 星期三 星期四 星期五 星期六\n");
printf("------------------------------------------------------\n");
for(i=0;i<weekday;i=i+1) /* 找当月1日的打印位置 */
printf(" ");
if(month==4 || month== 6 || month==9 || month==11)
len_of_month = 30;
else if(month==2)
{
if(isleap(year))
len_of_month = 29;
else
len_of_month = 28;
}
else
len_of_month = 31;
for(day=1;day<=len_of_month;day=day+1)/* 打印当月日期 */
{
printf(" %2d ",day);
weekday = weekday+1;
if(weekday==7) /* 打满一星期应换行 */
{
weekday = 0;
printf("\n");
}
}
printf("\n"); /* 打完一月应换行 */
}
return 0;
}