时尚平底鞋:帮忙画个万年历的流程图,谢谢了!!!!!!!!!!!

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/30 05:49:50
int leap(int year) /* 判断润年 */
{
int leap=0;
if((year%4==0&&year%100!=0)||(year%400==0))
leap=1;
return(leap);
}
int now_days(int year, int month, int date) /* 天数 */
{
int i, days=0;
int m[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(leap(year))
m[2]=29;
for(i=1;i<month;i++)
days+=m[i];
days+=date;
return(days);
}
int now_week(int year, int month, int date) /* 星期几 */
{
int week;
int begin_year=1;
int the_year_days;
long int total_days=0;
for(begin_year=1;begin_year<year;begin_year++)
{
if(leap(begin_year))
the_year_days=366;
else
the_year_days=365;
total_days+=the_year_days;
}
total_days+=now_days(year,month,date);
week=(total_days)%7;
return(week);
}
main()
{
int year, month;
int i, j;
int m[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
clrscr();
printf("Enter a year:\n");
scanf("%d",&year);
while(year<=0)
{
printf("illegal year: year must >0\n");
printf("Enter a year:\n");
scanf("%d",&year);
}
printf("Enter a month:\n");
scanf("%d",&month);
while(month<1||month>12)
{
printf("illegal month: use 1-12\n");
printf("Enter a month:\n");
scanf("%d",&month);
}
if(leap(year))
m[2]=29;
printf("\n<%d.%d>", year, month);
printf("\n***************************\n");
printf("Sun Mon Tue Wen Thu Fri Sat \n");
for(j=1;j<=now_week(year,month,1);j++)
printf(" ");
for(i=1;i<=m[month];i++)
{
printf("%d",i);
if(i>=10)
printf(" ");
else
printf(" ");
if(now_week(year,month,i)==6)
printf("\n");
}
printf("\n***************************\n");
}