Метод difference
- DateTime other
Возвращает Duration с разницей при вычитании other из this.
Возвращаемая Duration будет отрицательной, если other происходит после this.
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.18.5/dart-core/DateTime/difference.html