EasyCore

Даты серий и часовые пояса: как не потерять старт турнира

Команда EasyCore ·

Ошибка на один день часто начинается с правильного часа. Турнир в 22:30 UTC стартует в 01:30 МСК уже следующего календарного дня. Если отдельно перевести время, а дату оставить прежней, событие попадёт в неверную сетку.

Переводите дату и время как одно значение

У источника должен быть известен часовой пояс. Сохраните исходную дату, время и пояс, затем получите полный момент старта и представьте его в рабочем поясе. МСК соответствует UTC+03:00. Локальное время клиента другого пользователя может отличаться, поэтому подпись пояса обязательна.

Пример: 10 октября в 22:30 UTC — это 11 октября в 01:30 МСК. Вместе с датой изменится день недели: суббота станет воскресеньем. Если уровни разрешения турнира задаются по дням, проверять нужно воскресные уровни.

Отличайте повторение от конкретного события

У регулярного турнира сетка отвечает на вопрос «в какие дни он проходит». У серии важны конкретное число и время. Название с Sunday само по себе не доказывает дату проведения. Не достраивайте следующие недели только из названия: серия может закончиться или пропустить один старт.

Список привязанных турниров на странице группы полезнее одной даты последнего события. Последний известный старт может быть самым поздним в списке, а не ближайшим. Для отображения следующего события нужно просмотреть все доступные даты.

Выбирайте ближайший будущий старт

Условный список группы содержит 4 и 11 октября, оба старта в 14:30 МСК. При проверке 10 октября ближайшим будет 11 октября, воскресенье, 14:30. После этого старта нужна новая подтверждённая дата. Автоматически прибавлять семь дней нельзя.

Не путайте отсутствие стартов с ошибкой чтения

Если список прочитан и все даты прошли, корректный результат — «предстоящих стартов нет». Если страница недоступна или дата не распознана, результат другой: дату подтвердить не удалось. Отсутствие доступа не доказывает, что будущего турнира нет.

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

Контроль перед публикацией сетки

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

По теме