Khi đang xem xét các giải pháp cho một câu hỏi khác, tôi tự hỏi liệu có thể sử dụng Calendar
lớp .NET để triển khai lịch không dựa trên các quy ước của Trái đất hay không.
Ví dụ, một ngày trên sao Hỏa dài hơn khoảng 2,7% so với một ngày ở đây trên Trái đất:
Một quy ước được sử dụng bởi các dự án tàu vũ trụ cho đến nay là theo dõi thời gian mặt trời tại địa phương bằng cách sử dụng "đồng hồ sao Hỏa" 24 giờ, trên đó giờ, phút và giây dài hơn 2,7% so với thời lượng tiêu chuẩn của chúng (Trái đất).
Có cách nào tốt để thực hiện một MarsCalendar
như vậy mà chiều dài của một thứ hai là khác biệt so với tiêu chuẩn GregorianCalendar
, và do đó có thể sử dụng DateTime
các đối tượng dựa vào nó cho tất cả các tiêu chuẩn AddDays()
, AddHours()
vv chức năng? (Lưu ý: Lý tưởng nhất là một giải pháp - nếu tồn tại - sẽ có thể áp dụng cho bất kỳ dạng vật thể hành tinh nào mà nó có thể xác định cả độ dài phù hợp "1 ngày" và "1 năm". Mặc dù vậy, Mars là một ví dụ tuyệt vời )