Sono così ridicolmente frustrato dal dover utilizzare i valori DateTime per i set di dati che sono veramente "solo un giorno". I compleanni sono l'esempio più comune, ma questo si presenta sempre nelle applicazioni aziendali.
Mi sono abituato a impostare solo la parte Time dei record "date-only" su "noon" (che evita che la data cambi mai, indipendentemente dal fuso orario). Questo mi sembra un hack, e per sempre trovo bug da sviluppatori junior che inciampano su questo problema.
Il tempo è sempre relativo a un punto fisso. 4PM è 4 ore dopo il meridiano o mezzogiorno. Il punto più alto del sole in transito è osservabile e ci consente di impostare un sistema di coordinate. 3 ore prima di mezzogiorno (Ante Meridian), 2 ore dopo mezzogiorno, 1441899402938 millisecondi dal 1 ° gennaio 1970. Per le persone cresciute in un mondo cartesiano, questa è una seconda natura.
Ma il nostro calendario precede Descartes. La mia tesi è che è più correttamente pensato come un'enumerazione su cui viene applicata una funzione modulo. Il lunedì segue la domenica, e così via fino ad arrivare al fatto che la domenica segue sabato. Non c'è alcun positivo o negativo, è un modulo, o valore assoluto.
Allo stesso modo con gli anni che si ripetono. Ogni 365 giorni (o giù di lì) ci sono diversi giorni speciali per me: compleanni, anniversari, compleanni dei bambini, ecc. Le applicazioni di programmazione aziendale sono piene di esempi di riunioni ogni sette giorni, primo martedì del mese, ecc. Solo perché possiamo mapparlo su un numero in virgola mobile, e in verità mapparlo su detto numero risolve un sacco di problemi che sono davvero difficili alla vecchia maniera, ma questo non significa che sia l'unico modo per farlo.
La consapevolezza e la comprensione della natura del "piolo quadrato in un buco tondo" di utilizzare DateTimes per memorizzare Date ti rende un programmatore migliore a mio parere.
C'è un valore in un'applicazione esplicitamente intesa come applicazione di pianificazione nella definizione di una classe Date, o è "imposta tutte le volte a mezzogiorno" l'approccio migliore? Quali problemi potrebbero esserci con l'utilizzo di DateTime e l'impostazione del componente Ora su Noon? Lo spostamento del fuso orario può essere considerato in un simile approccio? Ho usato MomentJS, ma penso che sia solo una classe Date migliore.