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
相关产品推荐
相关产品推荐

