Saturday, March 20, 2021

Показать текущее мероприятие

Проблема

Алгоритм работает таким образом: в списке предстоящих мероприятий отображаются только те мероприятия, время начало которых больше, чем текущее. Как только наступает время начала, мероприятие пропадает из списка предстоящих мероприятий. 

Отсутствует информация о том, какое мероприятие идет сейчас и какое мероприятие вскоре начнется.

При реализации необходимо учитывать, что мероприятия проходят в разных часовых поясах.

Первая реализация на сайте выглядит так:



Формирование списка предстоящих мероприятий

При создании мероприятия организатор указывает время начала и время окончания. Время окончания является необязательным - в таком случае следует принимать длительность мероприятия - 1 час.

В списке предстоящих мероприятий необходимо отображать все мероприятия, которые не завершены: время окончания больше текущего времени.


Формирование списка прошедших мероприятий

В прошедших мероприятиях необходимо отображать также те мероприятия, которые идут прямо сейчас. Соответственно список включает такие мероприятия:

  • время окончания меньше текущего времени;
  • время окончания больше текущего времени, но время начала меньше текущего времени.

При сортировке текущие мероприятия необходимо отображать строго выше, чем прошедшие. 


Отображение меток

Если мероприятие идет сейчас отображать метку «идет сейчас»: время окончания больше текущего времени, время начала меньше текущего времени.

Если мероприятие начнется в течении часа, отображать метку «Начнется в течение часа»: время начала больше текущего времени и время начала меньше текущего времени + 1 час


Локализация времени

Если часовой пояс пользователя отличается от часового пояса мероприятия, необходимо рядом с временем начала указывать время в текущем часовом поясе.


Результат

Список предстоящих мероприятий:

Список прошедших мероприятий (сначала отображаем текущие):

Карточка текущего мероприятия:

Карточка мероприятия, которое начнется в течение часа:

Мероприятие, для которого указан другой часовой пояс:


После выпуска новой версии, покажем решение аналитику.