#include<stdio.h>
//#include<iostream>
int getDate(int year,int month);
int getDay(int year,int month);
main()
{
int year,month,y,i,j,sum;
char ch;
do{
printf("请输入年月:");
scanf("%d %d",&year,&month);
y=getDate(year,month);
sum=getDay(year,month);
printf("日\t一\t二\t三\t四\t五\t六\n");
switch(sum%7)
{
case 0:printf("");break;
case 1:printf("\t");break;
case 2:printf("\t\t");break;
case 3:printf("\t\t\t");break;
case 4:printf("\t\t\t");break;
case 5:printf("\t\t\t\t\t");break;
case 6:printf("\t\t\t\t\t\t");break;
}
for(i=1;i<=y;i++)
{
printf("%d\t",i);
if((i+sum%7)%7==0)
printf("\n");
}
printf("\n");
printf("张桐硕2018.7.1完成");
printf("\n");
printf("是否继续查看(y/n)");
fflush(stdin);
scanf("%c",&ch);
}
while (ch=='y');
//system("pause");
}
int getDate(int year,int month)
{
int y,i,j;
if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)
y=31;
else if(month==4||month==6||month==9||month==11)
y=30;
else if((year%4==0 && year%100!=0)|| (year%400==0))
y=29;
else
y=28;
return y;
}
int getDay(int year,int month)
{
int sum=0,i,j=0,k,sumb;
int a[100]={31,28,31,30,31,30,31,31,30,31,30,31};
sum=(year-1)*365;
for(i=1;i<year;i++)
{
if((i%4==0 && i%100!=0) || (i%400==0)) //一开始里面用的year判断的
j++;
}
if((year%4==0 && year%100!=0)|| (year%400==0))
a[1]=29;
for(i=0;i<month-1;i++)
{
sumb+=a[i];
}
sum=sum+j+sumb+1; //一开始没有+1,所以输出的星期是上个月最后一天的星期几
return sum;
}
//#include<iostream>
int getDate(int year,int month);
int getDay(int year,int month);
main()
{
int year,month,y,i,j,sum;
char ch;
do{
printf("请输入年月:");
scanf("%d %d",&year,&month);
y=getDate(year,month);
sum=getDay(year,month);
printf("日\t一\t二\t三\t四\t五\t六\n");
switch(sum%7)
{
case 0:printf("");break;
case 1:printf("\t");break;
case 2:printf("\t\t");break;
case 3:printf("\t\t\t");break;
case 4:printf("\t\t\t");break;
case 5:printf("\t\t\t\t\t");break;
case 6:printf("\t\t\t\t\t\t");break;
}
for(i=1;i<=y;i++)
{
printf("%d\t",i);
if((i+sum%7)%7==0)
printf("\n");
}
printf("\n");
printf("张桐硕2018.7.1完成");
printf("\n");
printf("是否继续查看(y/n)");
fflush(stdin);
scanf("%c",&ch);
}
while (ch=='y');
//system("pause");
}
int getDate(int year,int month)
{
int y,i,j;
if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)
y=31;
else if(month==4||month==6||month==9||month==11)
y=30;
else if((year%4==0 && year%100!=0)|| (year%400==0))
y=29;
else
y=28;
return y;
}
int getDay(int year,int month)
{
int sum=0,i,j=0,k,sumb;
int a[100]={31,28,31,30,31,30,31,31,30,31,30,31};
sum=(year-1)*365;
for(i=1;i<year;i++)
{
if((i%4==0 && i%100!=0) || (i%400==0)) //一开始里面用的year判断的
j++;
}
if((year%4==0 && year%100!=0)|| (year%400==0))
a[1]=29;
for(i=0;i<month-1;i++)
{
sumb+=a[i];
}
sum=sum+j+sumb+1; //一开始没有+1,所以输出的星期是上个月最后一天的星期几
return sum;
}