#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");
}
}
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;
}