difference方法

Duration difference(
  1. DateTime other
)

返回当从这个值减去other时的Duration

如果other在此之后发生,返回的Duration将是负数。

final berlinWallFell = DateTime.utc(1989, DateTime.november, 9);
final dDay = DateTime.utc(1944, DateTime.june, 6);

final difference = berlinWallFell.difference(dDay);
print(difference.inDays); // 16592

差异是以秒和秒分数来计算的。上述差异计算了两个日期午夜之间的小时分数。如果上述日期是本地时间而非UTC,由于夏令时的差异,两个午夜之间的差异可能不是24小时的整数倍。

例如,在澳大利亚,使用本地时间而非UTC编写的类似代码将失败,因为实际上差异是16591天和23小时,而Duration.inDays只返回整数天数。

final berlinWallFell = DateTime(1989, DateTime.november, 9);
final dDay = DateTime(1944, DateTime.june, 6);
final difference = berlinWallFell.difference(dDay);
print(difference.inDays); // 16591
assert(difference.inDays == 16592);

因为Duration.inDays只返回整数天数,所以会失败。

实现

external Duration difference(DateTime other);