int moutp(int year,int mounth,int date) /* 打印某年某月月历,date 是该月份的第一天是星期几 */
{int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int day,dates;
if (daysofyear(year)-365) days[1]=29;
for (dates=0;dates<date;dates++) printf(" ");
for (day=1;day<=days[mounth-1];day++)
{printf("%3d ",day);
dates++;
if (dates>=7)
{dates=0 ;
printf("\n");
}
}
printf("\n");
return dates;
}
int daysofyear(year) /* 计算出某年份的天数 */
{int days=0;
if (!(year%400)) days=366;
else if (!(year%100)) days=365;
else if (!(year%4)) days=366;
else days=365;
return days;
}
int dateofweek(int year) /* 计算出该年一月一日是星期几 */
{int y2k;
int day=6;
if (year>2000)
for (y2k=2000;y2k<year;y2k++) day=(day+daysofyear(y2k))%7;
else if (year<2000)
for (y2k=2000;y2k>year;y2k--) day=(7+day-daysofyear(y2k-1)%7)%7;
return day;
}