
已知公元 1 年 1 月 1 日是星期一。编写一个程序,只要输入年月日,就能回答那天是星 期几。
4个回答
展开全部
void main()
{
int year,month,day;
int i;
cout<< "please enter year month day:"<<endl;
cin>>year>> month>>day;
while(year!= 0 && month!=0 && month!= 0)
{
// (1)
int total=0;
for(i=1;i<year;i++)
{
if(( i%4==0 && i%100!=0 ) || i%400==0)
{
total+=366;
}
else
{
total+=365;
}
}
// (2)
for(i=1;i<month;i++)
{
if(i==1 || i==3 || i==5 || i==7 || i==8 || i==10 || i==12)
{
total+=31;
}
else if(i==4 || i==6 || i==9 || i==11)
{
total+=30;
}
else if(( year%4==0 && year%100!=0 ) || year%400==0)
{
total+=29;
}
else
{
total+=28;
}
}
total+=day;
// (3)
switch(total%7)
{
case 0:
cout<< "Sunday"<<endl;
break;
case 1:
cout<< "Monday"<<endl;
break;
case 2:
cout<< "Tuesday"<<endl;
break;
case 3:
cout<< "Wednesday"<<endl;
break;
case 4:
cout<< "Thursday"<<endl;
break;
case 5:
cout<< "Friday"<<endl;
break;
case 6:
cout<< "Saturday"<<endl;
break;
}
cout<< "please enter year month day:"<<endl;
cin>>year>> month>>day;
}
}
{
int year,month,day;
int i;
cout<< "please enter year month day:"<<endl;
cin>>year>> month>>day;
while(year!= 0 && month!=0 && month!= 0)
{
// (1)
int total=0;
for(i=1;i<year;i++)
{
if(( i%4==0 && i%100!=0 ) || i%400==0)
{
total+=366;
}
else
{
total+=365;
}
}
// (2)
for(i=1;i<month;i++)
{
if(i==1 || i==3 || i==5 || i==7 || i==8 || i==10 || i==12)
{
total+=31;
}
else if(i==4 || i==6 || i==9 || i==11)
{
total+=30;
}
else if(( year%4==0 && year%100!=0 ) || year%400==0)
{
total+=29;
}
else
{
total+=28;
}
}
total+=day;
// (3)
switch(total%7)
{
case 0:
cout<< "Sunday"<<endl;
break;
case 1:
cout<< "Monday"<<endl;
break;
case 2:
cout<< "Tuesday"<<endl;
break;
case 3:
cout<< "Wednesday"<<endl;
break;
case 4:
cout<< "Thursday"<<endl;
break;
case 5:
cout<< "Friday"<<endl;
break;
case 6:
cout<< "Saturday"<<endl;
break;
}
cout<< "please enter year month day:"<<endl;
cin>>year>> month>>day;
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询