Saya sangat frustrasi karena harus menggunakan nilai DateTime untuk set data yang benar-benar "hanya sehari." Ulang tahun menjadi contoh paling umum, tetapi ini muncul dalam aplikasi bisnis setiap saat.
Saya telah terbiasa mengatur bagian Waktu dari "hanya tanggal" catatan ke "siang" (yang menghindari tanggal yang selalu berubah tidak peduli zona waktu). Ini seperti hack, dan saya selamanya menemukan bug dari junior devs yang tersandung masalah ini.
Waktu selalu relatif terhadap titik tertentu. 4PM adalah 4 jam pasca meridian, atau siang hari. Titik tertinggi matahari dalam transit dapat diamati, dan memungkinkan kita untuk mengatur sistem koordinat. 3 jam sebelum tengah hari (Ante Meridian), 2 jam setelah tengah hari, 1441899402938 milidetik sejak 1 Januari 1970. Bagi orang yang dibesarkan di dunia Cartesian, ini adalah sifat kedua.
Tapi Kalender kami ada sebelum Descartes. Argumen saya adalah bahwa itu lebih tepat dianggap sebagai enumerasi di mana fungsi modulo diterapkan. Senin mengikuti Minggu, dan seterusnya sampai Anda sampai pada kenyataan bahwa Minggu mengikuti Sabtu. Tidak ada positif dan negatif, itu adalah nilai modulus, atau absolut.
Demikian pula dengan pengulangan bertahun-tahun. Setiap 365 hari (atau lebih) ada beberapa hari khusus untuk saya: ulang tahun, ulang tahun, ulang tahun anak-anak, dll. Aplikasi penjadwalan bisnis penuh dengan contoh pertemuan setiap tujuh hari, Selasa pertama setiap bulan, dll. Hanya karena kita BISA memetakan ini ke angka floating point, dan sebenarnya memetakannya ke angka tersebut memecahkan BANYAK masalah yang benar-benar sulit dengan cara lama, tetapi itu tidak berarti itu satu-satunya cara untuk melakukannya.
Kesadaran dan pemahaman tentang sifat "pasak persegi dalam lubang bundar" menggunakan DateTimes untuk menyimpan Tanggal membuat Anda seorang programmer yang lebih baik menurut saya.
Apakah ada nilai dalam aplikasi yang secara eksplisit dimaksudkan sebagai aplikasi penjadwalan dalam mendefinisikan kelas Date, atau "set sepanjang waktu ke siang hari" pendekatan terbaik? Masalah apa yang mungkin ada dengan menggunakan DateTime dan mengatur komponen Waktu ke Tengah Hari? Dapatkah pergeseran zona waktu diperhitungkan dalam pendekatan semacam itu? Saya telah menggunakan MomentJS, tapi saya pikir itu hanya kelas Date yang lebih baik.