我是编程和C ++的新手,我给自己写了一本关于它的书,所以是的.. 无论如何,我遇到了切换命令他们给了我一个任务,看看某个日期是在周末还是某个假期;在这种情况下圣诞节(12月25日)。它还说要放:
bool IsItHoliday(false)
一开始。 这是我尝试的代码,它没有工作...
#include <iostream>
using namespace std;
int main() {
cout<<"dd mm gggg";
int d,m;
long int g;
cin>>d>>m>>g;
long da;
if (m<3) {
da=365*g+d+31*(m-1)+(g-1)/4-3*((g-1)/100+1)/4;
}
else {
da=365*g+d+31*(m-1)-static_cast<int>(0.4*m+2.3)+g/4-3* (g/100+1)/4;
}
cout<<d<<"."<<m<<"."<<g<<". falls on ";
bool IsItHoliday(false);
switch (da%7) {
case 0:
case 1:
cout<<"weekend"<<endl;
break;
default:
cout<<"working day"<<endl;
}
return 0;
}
d是天,m是月,g是年,da是日期
如果假日语句(25thDecember)在switch block中的某个地方为真,那么bool IsItHoliday应该更改为true。我的周末检测代码确实有效,但它没有检测到12月25日为假期。
顺便说一下,本书是用克罗地亚语写的,不然他们不会告诉我代码看起来应该像是应该做什么。
答案 0 :(得分:0)
我很确定da
应该是工作日(可能来自克罗地亚语),所以你应该处理所有7个案例。圣诞节与特定的工作日无关,它可以在一周中的任何一天落下。因此,您无法仅为case 0:
处理它。
(Kiril的评论也是正确的)