다른 질문에 대한 해결책을 찾고있을 때 .NET을 사용할 수 있는지 궁금합니다. Calendar
클래스를 하여 Earthly 규칙을 기반으로하지 않는 달력을 구현할 .
예를 들어, 화성의 날 은 여기 지구상의 하루보다 2.7 % 더 길다.
현재까지 우주선 착륙선 프로젝트에서 사용 된 관례는 시간, 분 및 초가 표준 (지구) 지속 시간보다 2.7 % 더 긴 24 시간 “화성 시계”를 사용하여 지역 태양 시간을 추적하는 것이 었습니다.
구현하는 좋은 방법이 있나요 MarsCalendar
두 번째의 길이가 표준에서 다른되도록을 GregorianCalendar
, 따라서 사용할 수 DateTime
표준 모두를 위해 그것을 기반으로 개체 AddDays()
, AddHours()
등의 기능은? (참고 : 이상적으로 해결책은 존재하는 경우-일관된 길이의 “1 일”과 “1 년”을 모두 정의 할 수있는 모든 형태의 행성 천체에 적용 할 수 있습니다.하지만 화성은 좋은 예입니다. )
답변
System.Globalization.Calendar
Globalization 네임 스페이스 (예 🙂 내에서 파생 된 여러 비 그레고리력 달력 클래스가 JapaneseCalendar
있습니다. 직접 구현할 수 있어야합니다. 샘플을 채찍질했지만 Calendar 클래스에는 16 개의 추상 메서드가 있습니다.
단순히 클래스를 파생 GregorianCalendar
시키고 GetMilliseconds(DateTime)
메서드를 재정 의하여베이스의 반환 값에를 곱한 값을 반환 할 수도 있습니다 1.027d
.