Метод difference
Duration difference(Возвращает Duration с разницей между this и other.
DateTime berlinWallFell = new DateTime.utc(1989, DateTime.NOVEMBER, 9); DateTime dDay = new DateTime.utc(1944, DateTime.JUNE, 6); Duration difference = berlinWallFell.difference(dDay); assert(difference.inDays == 16592);
Разница измеряется в секундах и долях секунды. Разница выше считает количество долей секунды между полуночью в начале этих дат. Если указанные даты были в местном времени, а не в UTC, то разница между двумя полуночами может не быть кратна 24 часам из-за различий в переходе на летнее время.
Например, в Австралии аналогичный код, использующий местное время вместо UTC:
DateTime berlinWallFell = new DateTime(1989, DateTime.NOVEMBER, 9); DateTime dDay = new DateTime(1944, DateTime.JUNE, 6); Duration difference = berlinWallFell.difference(dDay); assert(difference.inDays == 16592);
не сработает, потому что разница фактически составляет 16591 день и 23 часа, а Duration.inDays возвращает только количество целых дней.
Исходный код
external Duration difference(DateTime other);
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-core/DateTime/difference.html