万年历谁帮我找找错
日期对不上
#include <stdio.h>;
#include <stdlib.h>;
int year,month,day;
int run[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int ping[12]={31,28,31,30,31,30,31,31,30,31,30,31};
char weekday[7][10]={"一","二","三","四","五","六","日"};
void printStar()
{
printf("*****************************************************\n");
}
void printBegin()
{
printf("\t\t\t万年历\t\t\t\n");
printStar();
for (int i=0;i<7;i++)
{
printf("%s\t",weekday[i]);
}
printf("\n");
}
int leap(int year)
{
int four,hundred,fourhundred;
four=year%4;
hundred=year%100;
fourhundred=year%400;
if (four==0&&hundred==0&&fourhundred==0)
{
return 1;
}
else if(four==0&&hundred!=0&&fourhundred!=0)
{
return 1;
}
return 0;
}
int daySum(int year,int month,int day,int run[],int ping[])
{
int i,sum=0;
for (i=1900;i<=year;i++)
{
int m=leap(year);
if(m==1)
{
sum+=366;
}
else
{
sum+=365;
}
}
for (i=0;i<month-1;i++)
{
if(leap(year)==1)
{
sum=sum+run[i];
}
else
{
sum=sum+ping[i];
}
}
return sum;
}
void printResult(int sum,int year,int month)
{
int result,temp,i;
result=sum%7;
for (i=0;i<result;i++)
{
printf("\t");
}
temp=7-result;
if (leap(year)==1)
{
for(i=1;i<=run[month-1];i++)
{
printf("%d\t",i);
if (i==temp||(i-temp)%7==0)
{
printf("\n");
}
}
}
else
{
for(i=1;i<=ping[month-1];i++)
{
printf("%d\t",i);
if (i==temp||(i-temp)%7==0)
{
printf("\n");
}
}
}
printf("\n");
}
int main()
{
printf("请输入年,月,日:");
scanf("%d%d%d",&year,&month,&day);
printBegin();
int sum=daySum(year,month,day,run,ping);
printResult(sum,year,month);
printStar();
system("pause");
return 0;
}