The calculation is the first day a few days this year

#include <iostream> 
using namespace std;

int Judge(int n)
{
	if((n%4==0&&n%100!=0)||(n%400==0))return 1;
	else return 0; 
}

int DaysCount(int yyyy,int mm,int dd)
{
	int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};int days=0;
	if(Judge(yyyy)==1)
	{
		for(int i=1;i<mm;i++)
		{
			if(i==2)days++;//29
			days=days+day[i];
		}
	}
	else
	{
		for(int i=1;i<mm;i++)
		{
			days=days+day[i];
		}
	}
	days=days+dd;
	//cout<<"是该年的第"<<days<<"天"<<endl;;
	return days;
}

int Whatdayisittoday(int yyyy,int mm,int dd)
{
		//1900年1月1日星期一 yyyy年mm月dd日星期几?
		int years=yyyy-1900;int leapdays=0,days=0;
		for(int i=1900;i<yyyy;i++)
			if(Judge(i)==1)leapdays++;
		days=years*365+leapdays+DaysCount(yyyy,mm,dd);
		int r=days%7;
		return r; 
}

int main()
{
	while(1)
	{
		string res[7]={"日","一","二","三","四","五","六"};
		//对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六 
		int yyyy,mm,dd;int days; 
		cout<<"请输入一个日期:";//yyyy年 mm月 dd日 
		cin>>yyyy>>mm>>dd;
		days=DaysCount(yyyy,mm,dd);
		int r=Whatdayisittoday(yyyy,mm,dd);
		cout<<yyyy<<"年"<<mm<<"月"<<dd<<"日是星期"<<res[r]<<endl; 
		cout<<"是此年的第"<<days<<"天"<<endl;
	}
}

 

Published 115 original articles · won praise 9 · views 8121

Guess you like

Origin blog.csdn.net/weixin_43673589/article/details/104534315