如何使用switch语句结合日与月判断日期所属季节?
日期识别工具的季节判断问题(switch语句结合日/月实现)
我正在开发一款日期识别工具,仅用if和switch语句实现三个功能:判断输入日期是否有效、确定日期所属季节、判断是否为闰年。目前另外两个模块已经正常运行,但switch语句部分无法按预期工作——我希望用switch同时检查日(d)和月(m)来判断季节,但不知道具体怎么实现。
以下是我的代码:
/* Switch statement to determine season for day and month */ // Using it with a "m" on it's own works, how do I get it working for specific days? switch (m) { case 12: case 1: case 2: if ((m == 12 && d >=21) || (m == 1) || (m == 2) || (m == 3 && m < 21)) printf("The season is Winter.\n"); break; case 3: case 4: case 5: if ((m == 3 && d >= 21) || (m == 4) || (m == 5) || (m == 6 && d < 21)) printf("The season is Spring.\n"); break; case 6: case 7: case 8: if ((m == 6 && d >= 21) || (m == 7) || (m == 8) | (m == 9 && d < 21)) printf("The season is Summer.\n"); break; case 9: case 10: case 11: if ((m == 9 && d >= 21) || (m == 10) || (m == 11) || (m == 12 && d < 21)) printf("The season is Autumn.\n"); default: break; }
我单独调试过各部分,但对switch的实现仍有疑问:
- 如何让switch同时结合日和月进行判断?
- 这个需求还能通过switch语句实现吗?
示例输出:
20/06/2022 = Spring 21/06/2022 = Summer
内容的提问来源于stack exchange,提问作者LeonidasEng
相关产品推荐
相关产品推荐

