0

我有 3 个变量保存值 Day Of Week(周枚举)、Hour(0 到 23)和 Minute(0 到 23),这 3 个变量只能保存一个公共值 N/A,其他值不同。如果所有都是 N/A 或一些有效值,那么我必须执行特定的逻辑 A。如果有人是 NA 并且其他人是有效的,那么我必须执行一些其他的逻辑 B

我尝试了很多使用if语句,但无法提出正确的解决方案。有人可以给我一个提示吗?

所有值都是整数

bool weeklyCount = (dayofweek == weeklyHour) && (weeklyHour == weeklyMinute);

这对我不起作用。

4

2 回答 2

2

在伪代码中:

if (dow == NA && hour == NA && minute == NA ||
    dow != NA && hour != NA && minute != NA) {
   // logic A
} else {
   // logic B
}
于 2012-12-11T14:40:57.147 回答
0
struct yourtime
{
    enum Day
    {
        INVALID = -1,
        SUNDAY,
        MONDAY,
        TUESDAY,
        WEDNESDAY,
        THURSDAY,
        FRIDAY,
        SATURDAY
    };
    Day day;
    int hour;
    int minute;
    yourtime() : day(INVALID), hour(INVALID), minute(INVALID) { }
    bool isValid()
    {
        return (day != INVALID) && (hour != INVALID) && (minute != INVALID);
    }
};

int main()
{
    yourtime test;
    std::cout << test.isValid() << std::endl;
}

利用枚举与整数大小相同的事实。

于 2012-12-11T14:50:59.400 回答