欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Flutter 计算两个日期的时间差

程序员文章站 2022-03-22 10:41:16
Flutter 计算两个日期的时间差我们在开发中,如果遇到计算2个日期相差多少天,用什么方法获得呢?如果需要知道两个日期相差多少小时、多少分、多少秒,又该如何计算呢?其实在 Flutter 中,想要计算日期和时间的差值非常简单,是需要使用 difference 函数即可。下面举例来说明。示例1. 计算两个日期相差多少天?var startDate = new DateTime(2020, 12, 20);var endDate = new DateTime.now();var days =...

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