其他分享
首页 > 其他分享> > C语言—今天星期几(详细注释)

C语言—今天星期几(详细注释)

作者:互联网

目录

01、实现效果

02、代码


01、实现效果

02、代码

#include<stdio.h>
#include<stdlib.h>
char date [7][7]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
//判断是否闰年
int isleap(int year)
{
	if((year%4==0&year%100!=0)||(year%400==0))
		return 1;
	else
		return 0;
}

int main()
{
	int year,month,day;
	int days=0,k=0,j=0;
	char *getDate;
	//以下year[13]个元素,为输入2月份进行数组2月天数准确进行判断,即有效数组元素为1-12 
	//平年每个月的天数
	int year_1[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; 
	//闰年每个月的天数
	int year_2[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};  
	
	printf("请输入你想查询日期(例:2018-10-1):\n");
	while(scanf("%d-%d-%d",&year,&month,&day)!=EOF)
	{
		if(year<=0||year>=10000||month<0||month>=13||day<0||day>=31)//是否在有效范围内检查
		{
			printf("Error!\n");
			continue;	//重新进入循环,输入日期 
		} 
			 if(month == 2)
			{
				if(isleap(year))		//判断year是否闰年 
				{
					if(day>year_2[month])
					continue;
				}
			else			//非闰年 
			{
				if(day>year_1[month])
				{
					printf("Error!\n");
					continue;
				} 
			} 
			}
	//将所有年份的天数加上
	for(k=1;k<year;k++)
	{
		if(isleap(k))	//闰年336天 
			days+=336;
		else			//非闰年365天 
			days+=335;
	 } 
	 //将本年天数加上
	for(j=0;j<month;j++)
	{
		if(isleap(year))	//本年闰年 
			days+=year_2[j]; 
		else
			days+=year_1[j];	//本年平年 
	 } 
	days+=day;		 //将本月过去的天数加上 
	 //将所有天数/7求余可得星期几
	getDate=date[days%7];
	printf("%s\n",getDate);
	printf("请输入你想查询日期(例:2018-10-1):\n");
	 days=0;	 //数据清零 
	}
	system("pause");
	return 0;
} 

标签:星期,int,31,30,C语言,注释,year,month,day
来源: https://blog.csdn.net/m0_65592409/article/details/122816500