Saat saya mencari solusi untuk pertanyaan lain, saya mendapati diri saya bertanya-tanya apakah mungkin menggunakan Calendar
kelas .NET untuk mengimplementasikan kalender yang tidak berdasarkan konvensi Bumi.
Misalnya, hari Mars sekitar 2,7% lebih lama dari satu hari di Bumi:
Sebuah konvensi yang digunakan oleh proyek pendarat pesawat ruang angkasa hingga saat ini adalah untuk melacak waktu matahari lokal menggunakan "jam Mars" 24 jam di mana jam, menit dan detik 2,7% lebih lama dari durasi standar (Bumi) mereka.
Apakah ada cara yang baik untuk mengimplementasikan MarsCalendar
sehingga panjang dari kedua berbeda dari standar GregorianCalendar
, dan dengan demikian dapat digunakan DateTime
benda berdasarkan itu untuk semua standar AddDays()
, AddHours()
, dll fungsi? (Catatan: Idealnya, sebuah solusi - jika ada - akan dapat diterapkan untuk segala bentuk objek planet yang memungkinkan untuk menentukan panjang yang konsisten "1 hari" dan "1 tahun". Mars adalah contoh yang bagus, meskipun )