97 lines
1.5 KiB
C++
97 lines
1.5 KiB
C++
#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]={"星期一","星期二","星期三","星期四","星期五","星期六","星期日"};
|
|
char yuefen[12][20]={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
|
|
int leap(int year)
|
|
{
|
|
if(year%4==0&&year%100!=0||year%400==0)
|
|
{
|
|
return 1;
|
|
}
|
|
else
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
int nian(int year,int month,int day,int run[],int ping[])
|
|
{
|
|
int i,sum=0;
|
|
for(i=1900;i<year;i++)
|
|
{
|
|
if(leap(i)==1)
|
|
{
|
|
sum+=366;
|
|
}
|
|
else
|
|
{
|
|
sum+=365;
|
|
}
|
|
}
|
|
for(i=0;i<month-1;i++)
|
|
{
|
|
if(leap(year)==1)
|
|
{
|
|
sum+=run[i];
|
|
}
|
|
else
|
|
{
|
|
sum+=ping[i];
|
|
}
|
|
}
|
|
return sum;
|
|
}
|
|
void dy(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",&year,&month);
|
|
for(int i=0;i<12;i++)
|
|
{
|
|
printf("%s\n",yuefen[i]);
|
|
for(int j=0;j<=7;j++)
|
|
{
|
|
printf("%s\t",weekday[j]);
|
|
}
|
|
printf("\n");
|
|
int sum=nian(year,month,day,run,ping);
|
|
dy(sum,year,month);
|
|
}
|
|
return 0;
|
|
}
|