Хранение часов работы на полный день (24 часа) - PullRequest
0 голосов
/ 30 августа 2011

Я пишу программу, которая хранит часы работы магазина в поле базы данных time и задалась вопросом, каким будет правильный диапазон времени, если я хочу выразить, что в определенный день магазин работает 24 часа. Это 0: 00-23: 59? Или это 0: 01-0: 00? Оба формата имеют промежуток в одну минуту, когда магазин закрыт. Это 0: 00-0: 00? Существуют ли различия в зависимости от места начала дня?

Ответы [ 3 ]

1 голос
/ 30 августа 2011

Я видел случаи использования, когда магазины открыты утром и вечером, но нет в дневное время.

Независимо от того, есть ли в магазине несколько смен или нет, у меня был бы стол Hours сСохраняются 30-минутные интервалы (вы также можете сделать интервалы в 1 час или 15-минутные) и использовать их для отметки в любое время, когда магазин открыт или закрыт.

0 голосов
/ 30 августа 2011

Само условие в действительности не вписывается в вашу концепцию хранения, но, поскольку у вас есть много недопустимых значений для того, что вы выполняете (конец <начало, конец == начало), нет ничего плохого в назначении любого из них , Так, например, используйте 0:00 - 0:00 и мысленно решите, что end> ​​start, и поэтому это должно представлять полный день. 0:00 - 23:59 имеет законное значение, поэтому я бы избегал этого.

Другой вариант - использовать время начала + продолжительность, а не два раза. Я думаю, что я выбрал бы это для предпочтения.

Я думаю, что начало дня не имеет значения; если вы сохраняете свои уровни хранилища данных и презентации независимыми, вы можете локализовать их на уровне презентации (т.е. при печати времени), и хранилище данных не будет заботиться о начале дня (поэтому используйте UTC или сохраните часовой пояс).

Замечание по реализации: вам не хватает средств для открытия магазина два раза в день (например, в обеденный перерыв) или более.

0 голосов
/ 30 августа 2011

В зависимости от вашего механизма базы данных, это может занять несколько секунд, так что у вас будет магазин, открытый с 00:00:00 до 23:59:59.Тогда 1-секундное перекрытие не так уж и плохо.

При работе с этим самое важное, что нужно помнить, это то, что некоторые магазины будут открыты 24 часа, но работа начнется в определенное время.Например, с 6 утра до 6 утра следующего дня.

Один из способов сохранить его - это иметь время открытия, а затем какой-то промежуток времени, может быть, просто количество секунд после времени открытия.Таким образом, вы можете получить 84600 на 24 часа.

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