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

Flutter改造月份转换else if逻辑 实现越界循环不返回error

Dart实现月份数值循环映射法语月份名

实现思路

移除原代码中越界返回error的判断,通过模运算将任意整数入参归一化到1-12的有效月份区间,同时优化原代码冗余的多分支判断,用有序列表存储法语月份名,通过索引直接取值,降低后续维护成本。

核心归一化逻辑:

// 任意整数月份转换为1-12区间有效值
final normalizedMonth = ((month - 1) % 12) + 1;

该公式兼容所有整数入参:

  • 大于12的数值会自动向后顺延,循环到后续年份的对应月份
  • 小于1的数值会自动向前倒推,循环到之前年份的对应月份

完整可运行代码

String numericToStringMonth(int month) {
  const monthNames = [
    'Janvier',
    'Février',
    'Mars',
    'Avril',
    'Mai',
    'Juin',
    'Juillet',
    'Août',
    'Septembre',
    'Octobre',
    'Novembre',
    'Décembre'
  ];
  final normalizedMonth = ((month - 1) % 12) + 1;
  return monthNames[normalizedMonth - 1];
}

映射效果参考

  • 入参0:返回Décembre(1月往前1个月,对应上年12月)
  • 入参-2:返回Octobre(1月往前3个月,对应上年10月)
  • 入参13:返回Janvier(12月往后1个月,对应下年1月)
  • 入参24:返回Décembre(12月往后12个月,对应后年12月)

内容的提问来源于stack exchange,提问作者weaked

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 14:24:18