Метод difference
- DateTime other
Возвращает Duration, представляющий разницу при вычитании other из этого объекта.
Возвращаемый Duration будет отрицательным, если other происходит после этого объекта.
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:
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);
завершится ошибкой, поскольку фактическая разница составляет 16591 день и 23 часа, а Duration.inDays возвращает только количество полных дней.
Реализация
external Duration difference(DateTime other);
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-core/DateTime/difference.html