#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;
}
}