Flutter Получить самую близкую к текущему моменту временную метку из списка - PullRequest
1 голос
/ 14 июля 2020

Как получить ближайшую к настоящему моменту метку времени из списка?

Я получил список меток времени и хочу определить ближайшую метку времени в будущем к текущей метке времени.

Как я могу добиться этого?

1 Ответ

2 голосов
/ 14 июля 2020

Что-то вроде этого? Я не уверен, как вы представляете свои временные метки, поэтому я сделал пример, используя DateTime объекты:

void main() {
  final dateTimes = <DateTime>[
    DateTime(2020, 8, 1),
    DateTime(2020, 8, 5),
    DateTime(2020, 7, 13),
    DateTime(2020, 7, 18),
    DateTime(2020, 8, 15),
    DateTime(2020, 8, 20)
  ];
  final now = DateTime(2020, 7, 14);
  
  final closetsDateTimeToNow = dateTimes.reduce(
      (a, b) => a.difference(now).abs() < b.difference(now).abs() ? a : b);

  print(closetsDateTimeToNow); // 2020-07-13 00:00:00.000
}

Обратите внимание, решение находит временную метку туалета в списке и смотрит как в прошлом, так и в будущее.

...