C语言万年历,C语言趣味程序

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

//菜单 
void  menu()
{
	printf("-----------------------------\n"); 
	printf("\t 1.按月打印\n");
	printf("\t 2.按年打印\n");
	printf("\t 3.退出\n");
	printf("-----------------------------\n"); 
}
//计算一个月多少天 
int dayofmon(int y,int m)//y是年,m是月 
{
	int day;
	if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
		day=31;
	else if(m==4||m==6||m==9||m==11)
		day=30;
	else
		day=(y%4==0&&y%100!=0||y%400==0)?29:28;
	return day;
}
//求每月一号是周几 
int week(int y,int m)
{
	int s;
	if(m==1||m==2)
	{
		m+=12;
		y--;
	}
	s=(1+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7;//求每月一号是周几 
	return s; 
}
//按月输出日历 
void showmon(int y,int m)
{
	int s,day,i;
	printf("\t\t    %d年%d月\n",y,m);
	printf("sun\tmon\ttues\twed\tthu\tfir\tsat\n");
	s=week(y,m);
	day=dayofmon(y,m);
		if(s==1)
		printf("\t");
	else if(s==2)
		printf("\t\t");
	else if(s==3)
		printf("\t\t\t");
	else if(s==4)
		printf("\t\t\t\t");
	else if(s==5)
		printf("\t\t\t\t\t");
	else if(s==6)
		printf("\t\t\t\t\t\t");
	for(i=1;i<=day;i++)
		{
		 printf("%d\t",i);
		 if((i+s)%7==0)
		 	printf("\n");
		}
	printf("\n");	
}
//按年输出日历 
void showyear(int y)
{
	int m;
	for(m=1;m<=12;m++)
	{
		showmon(y,m);
	}
}
// 打印等待 
void load()
{
	printf("正在打印,请稍等\n");
	printf("打印中 ");
	printf("* ");Sleep(700);
	printf("* ");Sleep(700);
	printf("* ");Sleep(700);
	printf("* ");Sleep(700);
	printf("* ");Sleep(700);
	printf("* ");Sleep(700);
} 
//判断输入的月份是否符合规定 
int judge(int m)
{
	int again=m;//用于月份错误时,放进重新输入的月份 
	while(m<=0||m>12)
	{
		printf("您输入的月份不符合规定\n");
		printf("请重新输入月份\n");
		scanf("%d",&again);
		m=again; 	 
	}
	return again;
} 
int main()
{
	system("color F0"); 
	int y,m;
	int select;
	printf("请输入你的选择项目\n");
 	menu();
 	scanf("%d",&select);
 	system("cls");//清屏 
 	if(select==1)
	{
		printf("请输入你要查询的年月\n");
		scanf("%d%d",&y,&m);
		int again=m;
		again=judge(m); //判断 
		m=again;
		load();//打印等待 
		system("cls");//清屏 
		showmon(y,m);
	}	
	else if(select==2)
	{
		printf("请输入你要查询的年\n");
		scanf("%d",&y);
		load();//打印等待 
		system("cls");//清屏 
		showyear(y);
	}	
} 

 

猜你喜欢

转载自blog.csdn.net/Eliauk1234/article/details/121092771
今日推荐