C ++ switch + bool任务来自书

时间:2016-09-15 10:39:55

标签: c++ switch-statement boolean

我是编程和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日为假期。

顺便说一下,本书是用克罗地亚语写的,不然他们不会告诉我代码看起来应该像是应该做什么。

1 个答案:

答案 0 :(得分:0)

我很确定da应该是工作日(可能来自克罗地亚语),所以你应该处理所有7个案例。圣诞节与特定的工作日无关,它可以在一周中的任何一天落下。因此,您无法仅为case 0:处理它。

(Kiril的评论也是正确的)