Sono così ridicolmente frustrato dal dover usare i valori DateTime per 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 Ora dei record "solo data" su "mezzogiorno" (che evita che la data cambi mai indipendentemente dal fuso orario). Sembra un trucco e trovo per sempre bug dagli sviluppatori junior che inciampano in questo problema.
Il tempo è sempre relativo a un punto fisso. Le 16:00 sono 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 Cartesio. La mia tesi è che è più propriamente considerata un'enumerazione su cui viene applicata una funzione modulo. Il lunedì segue la domenica e così via fino a quando non si arriva al fatto che la domenica segue il sabato. Non c'è positivo e negativo, è un modulo o valore assoluto.
Allo stesso modo con anni che si ripetono. Ogni 365 giorni (o giù di lì) ci sono diversi giorni speciali per me: compleanni, anniversari, compleanni per bambini, ecc. Ecc. Le applicazioni di pianificazione aziendale sono piene di esempi di incontri ogni sette giorni, il primo martedì del mese, ecc. Solo perché possiamo mapparlo su un numero in virgola mobile, e in realtà mapparlo su detto numero risolve MOLTI problemi che sono davvero difficili alla vecchia maniera, ma ciò non significa che sia l'unico modo per farlo.
La consapevolezza e la comprensione della natura "piolo quadrato in un buco rotondo" dell'uso di DateTimes per memorizzare le date, secondo me, ti rende un programmatore migliore.
Esiste un valore in un'applicazione esplicitamente inteso come un'applicazione di pianificazione nella definizione di una classe Date o "l'approccio migliore è sempre impostato su mezzogiorno"? Quali potrebbero essere i problemi con l'utilizzo di DateTime e l'impostazione del componente Time su Noon? È possibile tenere conto del trasferimento del fuso orario in un simile approccio? Ho usato MomentJS, ma penso che sia solo una migliore classe Date.