Je suis tellement ridiculement frustré de devoir utiliser des valeurs DateTime pour des ensembles de données qui ne sont «qu'une journée». Les anniversaires sont l'exemple le plus courant, mais cela revient tout le temps dans les applications d'entreprise.
Je me suis habitué à simplement régler la partie Heure des enregistrements "date uniquement" sur "midi" (ce qui évite que la date ne change jamais, quel que soit le fuseau horaire). Cela semble être un piratage, et je trouve toujours des bugs de développeurs juniors qui se déplacent sur ce problème.
Le temps est toujours relatif à un point fixe. 16 heures est 4 heures après le méridien, ou midi. Le point de transit le plus élevé du soleil est observable et nous permet de mettre en place un système de coordonnées. 3 heures avant midi (Ante Meridian), 2 heures après midi, 1441899402938 millisecondes depuis le 1er janvier 1970. Pour les personnes élevées dans un monde cartésien, c'est une seconde nature.
Mais notre calendrier est antérieur à Descartes. Mon argument est qu'il est plus correctement considéré comme une énumération sur laquelle une fonction modulo est appliquée. Le lundi suit le dimanche, et ainsi de suite jusqu'à ce que vous arriviez au fait que le dimanche suit le samedi. Il n'y a ni positif ni négatif, c'est un module, ou une valeur absolue.
De même avec des années se répétant. Tous les 365 jours (environ), il y a plusieurs jours spéciaux pour moi: les anniversaires, les anniversaires, les anniversaires des enfants, etc. nous POUVONS mapper cela sur un nombre à virgule flottante, et en vérité, le mapper sur ledit nombre résout BEAUCOUP de problèmes qui sont vraiment difficiles à l'ancienne, mais cela ne signifie pas que c'est la seule façon de le faire.
La connaissance et la compréhension de la nature de la «cheville carrée dans un trou rond» de l'utilisation de DateTimes pour stocker des dates font de moi un meilleur programmeur.
Y a-t-il une valeur dans une application explicitement conçue comme une application de planification dans la définition d'une classe Date, ou est-ce que "régler toutes les heures sur midi" est la meilleure approche? Quels problèmes peut-il y avoir avec l'utilisation de DateTime et la définition du composant Time sur Noon? Le décalage de fuseau horaire peut-il être pris en compte dans une telle approche? J'ai utilisé MomentJS, mais je pense que c'est juste une meilleure classe Date.