⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 -=-

📁 vc++编写万年历
💻
字号:
#include<stdio.h>
#include<stdlib.h>
int runnian(int year)
{
	if(year%4==0&&year%100!=0||year%400==0)
		return 1;
	else
		return 0;
}
int day1(int year,int month)
{
	int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
	if (runnian(year))
		a[1]=29;
	return a[month-1];
}
int day2(int year,int month,int day)
{
	int i,sum=0;
	for(i=1;i<month;i++)
		sum+=day1(year,i);
	sum+=day;
	return sum;
}
int week1(int year,int month,int day)
{
	int number;
	number=(year-1)+(year-1)/4-(year-1)/100+(year-1)/400+day2(year,month,day);
	number%=7;
	return number;
}
char *week2(int number)
{
	switch(number)
	{
		case 0: return "星期日";
			case 1: return "星期一";
				case 2: return "星期二";
					case 3: return "星期三";
						case 4: return "星期四";
							case 5: return "星期五";
								case 6: return "星期六";
								default: return "错误!请您重新输入。";
	}
}
void x1(int year,int month,int day)
{
	int number;
	number=week1(year,month,day);
	if(runnian(year))
		printf("闰年");
	else
		printf("平年");
	printf("   %d年   %d月   %d日%10s\n\n",year,month,day,week2(number));
}
void x2(int year,int month)
{
	int max,number,i,j=1;
	max=day1(year,month);
	number=week1(year,month,1);
	printf("     ");
	printf("%2s  %2s  %2s  %2s  %2s  %2s  %2s\n","星期日","星期一","星期二","星期三","星期四","星期五","星期六");
	for(i=0;i<number;i++)
		printf("        ");
	while(j<=max)
	{
		printf("%8d",j);
		if(i%7==6)
			printf("\n\n");
		i++;
		j++;
	}
	printf("\n\n");
}
int x3(int year,int month,int day)
{
	if(year<0||month<1||month>12||day<1||day>day1(year,month))
		return 0;
	else
		return 1;
}
void nianli(int year)
{
	void yueli(int year,int month);
	int i;
	printf("\n");
	for(i=1;i<=12;i++)
		yueli(year,i);
}
void yueli(int year,int month)
{
	if(runnian(year))
		printf("闰年");
	else
		printf("平年");
	printf("  %d年   %d月\n\n",year,month);
	x2(year,month);
}
void rili(int year,int month,int day)
{
	printf("\n");
	x1(year,month,day);
}
void main()
{
	int year,month,day,a,b,c=0;
	printf("\n\n\n\n");
	printf("                                   **       **\n");
	printf("                                 ***************\n");
	printf("                             ******           ******\n");
	printf("                        ********                ********\n");
	printf("                    ******                            ******\n");
	printf("           **********************************************************\n\n");
	printf("      ************         *                        *         ************ \n");
	printf("  ***********                欢迎进入万年历查询系统                ***********\n");
	printf("      ************         *                        *         ************ \n\n");
	printf("           **********************************************************\n");
	printf("             ****   ****                                 ****   ****\n");
	printf("               *** ***                                     *** ***\n");
	printf("                 * *                                         * *\n");
	printf("                  *                                           *\n\n\n");
	while(1)
	{
		if(c==1)
		{
			printf("                 ---------谢谢您的使用,请选择继续服务---------\n");
		}
		c=1;
		printf("                           1 年历 2 月历 3 日历 4 退出\n");
		printf("                        请输入您的选择<1~4>,按回车键确定: ");
		scanf("%d",&b);
		switch(b)
		{
			case 1:
				printf("\n\t\t            请输入您要查的年份: ");
				scanf("%d",&year);
				a=x3(year,1,1);
				if(a==0)
				{
					printf("\n\t\t\t\t错误!请您重新输入。\n\n\n\a\a");
					break;
				}
				nianli(year);
				break;
				case 2:
					printf("\n\t\t  请输入您要查的年和月,年月之间用空格隔开: ");
					scanf("%d%d",&year,&month);
					a=x3(year,month,1);
					if(a==0)
					{
						printf("\n\t\t\t\t错误!请您重新输入。\n\n\n\a\a");
						break;
					}
					yueli(year,month);
					break;
					case 3:
						printf("\n\t\t请输入您要查的年月日,年月日之间用空格隔开: ");
						scanf("%d%d%d",&year,&month,&day);
						a=x3(year,month,day);
						if(a==0)
						{
							printf("\n\t\t\t\t错误!请您重新输入。\n\n\n\a\a");
							break;
						}
						rili(year,month,day);
						break;
						case 4:
							printf("\n\n\t\t\t\t  谢谢您的使用\n");
							printf("\n\n\t\t\t\t  作者:林悦荣\n\n\t\t\t\t 学号:11070627\n\n\n");
							printf("\t\t\t   ");
							exit(0);
							default:
								printf("\n\t\t\t\t错误!请您重新输入。\a\a\a\n\n");
								}
	}
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -