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