difference方法
- 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);