Я так смешно разочарован необходимостью использовать значения DateTime для наборов данных, которые действительно "всего лишь день". Дни рождения - самый распространенный пример, но это постоянно встречается в бизнес-приложениях.
Я привык просто устанавливать для части времени записей «только для даты» значение «полдень» (что позволяет избежать изменения даты независимо от часового пояса). Это похоже на хак, и я навсегда нахожу ошибки от младших разработчиков, которые спотыкаются об этой проблеме.
Время всегда относительно фиксированной точки. 4 вечера - 4 часа после меридиана или полдень. Наблюдается самая высокая точка Солнца в пути, что позволяет нам установить систему координат. За 3 часа до полудня (Анте Меридиан), через 2 часа после полудня, 1441899402938 миллисекунд с 1 января 1970 года. Для людей, выросших в декартовом мире, это вторая натура.
Но наш календарь предшествует Декарту. Мой аргумент состоит в том, что он более правильно воспринимается как перечисление, к которому применяется функция по модулю. Понедельник следует за воскресеньем и так далее, пока вы не дойдете до того факта, что воскресенье следует за субботой. Здесь нет положительного и отрицательного, это модуль или абсолютное значение.
Аналогично с повторением лет. Каждые 365 дней (или около того) у меня есть несколько особых дней: дни рождения, юбилеи, дни рождения детей и т. Д. мы МОЖЕМ отобразить это на число с плавающей запятой, и, по правде говоря, отображение его на указанное число решает ОЧЕНЬ много проблем, которые действительно сложны по-старому, но это не значит, что это единственный способ сделать это.
Понимание и понимание природы «квадратного колышка в круглой дыре» использования DateTimes для хранения дат делает, по моему мнению, лучшим программистом.
Есть ли смысл в приложении, явно предназначенном для планирования, при определении класса Date или «лучший способ установить полдень»? Какие проблемы могут возникнуть при использовании DateTime и установке компонента Time в полдень? Можно ли учитывать изменение часового пояса при таком подходе? Я использовал MomentJS, но я думаю, что это просто лучший класс Date.