Jam*_*med 5 time datetime dart flutter
我正在开发一个项目,想要添加 DateTime 中分钟、小时、天、周、月和年的差异。我可以在几分钟到几天内完成。例如
DateTime.now().difference(DateTime(2019, 10, 7)).inDays
Run Code Online (Sandbox Code Playgroud)
但我花了数周、数月甚至数年的时间来创作它。我该怎么办,请帮忙
我构建了一个包来帮助我解决这个问题,称为Jiffy
Jiffy([2018, 1, 29]).diff(Jiffy([2019, 10, 7]), Units.DAY); // -616
Jiffy([2018, 1, 29]).diff(Jiffy([2019, 10, 7]), Units.WEEK); // -88
Jiffy([2018, 1, 29]).diff(Jiffy([2019, 10, 7]), Units.MONTH; // -20
Jiffy([2018, 1, 29]).diff(Jiffy([2019, 10, 7]), Units.YEAR); // -1
Run Code Online (Sandbox Code Playgroud)
您可以手动计算月份差异大小(不使用任何包):
static int getMonthSizeBetweenDates(DateTime initialDate, DateTime endDate){
return calculateMonthSize(endDate)-calculateMonthSize(initialDate)+1;
}
static int calculateMonthSize(DateTime dateTime){
return dateTime.year*12+dateTime.month;
}
Run Code Online (Sandbox Code Playgroud)
getMonthSizeBetweenDates 方法可提供起始日期和结束日期之间的月份数。例如:您的初始日期是 2022 年 1 月 1 日,结束日期是 2022 年 3 月 1 日。那么这个方法返回 3(一月、十月和三月)
您可以使用此逻辑找到周和年的差异。
另一种方法:
static int getMonthSizeBetweenDates2(DateTime initialDate, DateTime endDate){
return (endDate.year-initialDate.year)*12+(endDate.month-initialDate.month)+1;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5837 次 |
| 最近记录: |