#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
int fact_1(int year,int m);
int fact_2(int c,int y,int m);
int main(int argc, char *argv[]) {
	int c,y,m,year,day,i,w;
	printf("请输入想要的年月:");
	scanf("%2d%2d %d",&c,&y,&m);
	year=100*c+y;
	while(fact_1(year,m)==0){
	system("cls");
	printf("刚刚输入错误,请输入想要的年月:"); 
	scanf("%2d%2d %d",&c,&y,&m);
	year=100*c+y;
	}
	switch(m){
		case 1:
		case 3:
		case 5:
	    case 7:
		case 8:
		case 10:
		case 12 :day=31;break;
		case 4:
		case 6:
		case 9:
		case 11:day=30;break;
		case 2:if(((year%4==0)&&(year%100!=0))||(year%400==0)){
			day=29;
		}else{
			day=28;
		}
			break;
			default: break;
		}
		w=fact_2(c,y,m);
		printf("星期日  星期一  星期二  星期三  星期四  星期五  星期六\n");
		for(i=1;i<=w;i++) {
			printf("        ");
		}
		for(i=1;i<=day;i++){
			printf("%-8d",i);
			if((i+w-7)%7==0){
				printf("\n\n\n\n");
			}
		}
	return 0;
}
int fact_1(int year,int m){
	if((year<=1582)||(m<=0&&m>12))
	{
		return 0;
	}
	return 1;
}
int fact_2(int c,int y,int m){
	int w;
	if(m==1||m==2){
	y=y-1;
	m=m+12;
	}
	w=c/4-2*c+y/4+y+26*(m+1)/10;
	while(w<0){
		w+=7;
		w%=7;
		return w;
	   }
	}