You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 18:00:53