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

Flutter中如何检测两个日期是否跨月份?

在Flutter中检测两个DateTime是否存在月份变化

要判断两个DateTime对象是否存在月份变化,核心是对比它们的年份和月份是否不同——只要年份不同,或者同一年但月份不同,就说明跨了月份。

实现函数

可以直接写一个工具函数来完成判断:

bool hasMonthChanged(DateTime date1, DateTime date2) {
  // 年份不同 或 月份不同,即存在月份变化
  return date1.year != date2.year || date1.month != date2.month;
}

示例验证

示例1:跨月份情况

void main() {
  DateTime a = DateTime(2022, 10, 01);
  DateTime b = DateTime(2022, 09, 22);
  bool isChange = hasMonthChanged(a, b);
  print(isChange); // 输出: true
}

示例2:同月份情况

void main() {
  DateTime a = DateTime(2022, 09, 24);
  DateTime b = DateTime(2022, 09, 22);
  bool isChange = hasMonthChanged(a, b);
  print(isChange); // 输出: false
}

补充说明

这种方式也能处理跨年的跨月场景,比如DateTime(2022, 12, 31)和DateTime(2023, 1, 1),函数会返回true,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:10:43