Flutter 计算两个日期的时间差
Flutter 计算两个日期的时间差
我们在开发中,如果遇到计算2个日期相差多少天,用什么方法获得呢?如果需要知道两个日期相差多少小时、多少分、多少秒,又该如何计算呢?
其实在 Flutter 中,想要计算日期和时间的差值非常简单,是需要使用 difference 函数即可。下面举例来说明。
示例
1. 计算两个日期相差多少天?
var startDate = new DateTime(2020, 12, 20);
var endDate = new DateTime.now();
var days = endDate.difference(startDate).inDays;
2. 计算两个日期相差多少小时?
var startDate = new DateTime(2020, 12, 20);
var endDate = new DateTime.now();
var hours = endDate.difference(startDate).inHours;
3. 计算两个日期相差多少分钟?
var startDate = new DateTime(2020, 12, 20);
var endDate = new DateTime.now();
var minutes = endDate.difference(startDate).inMinutes;
大家看,是不是非常简单,只要我们使用 difference 方法,就能获取到所有时间单位的差值。
源码简析
其实,DateTime 的 difference 方法 返回的是一个 Duration 对象。
Duration 是什么?
Duration 是用来表示时间跨度(差值)的类,例如27天,4小时,12分钟和3秒。Duration 提供了很多时间单位转换的方法以及时间加减计算的方法,使用起来非常方便。
注意,Duration 表示时间差值,它可以为负数。
它的属性:
final int _duration;
就是两个时间差值,单位是微秒,它是最核心的一个属性了。
inDays、inHours、inMinutes 等,都是 Duration 的 get 方法,内部都是通过 _duration 属性除以相应的时间单位来得到结果的。
例如,天数计算:
int get inDays => _duration ~/ Duration.microsecondsPerDay;
是不是非常方便,而且 Duration 可以在动画等非常多的场景中使用。
**PS:更多精彩内容,请查看 --> 《Flutter 开发》
**PS:更多精彩内容,请查看 --> 《Flutter 开发》
**PS:更多精彩内容,请查看 --> 《Flutter 开发》
本文地址:https://blog.csdn.net/u011578734/article/details/111997600
上一篇: 前端面试题(一)
下一篇: 怎么样炒茄子不会变黑