Spec-Zone.ru › Dart 2

dart:core

Метод difference

Duration difference(
  1. 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API