지구가 아닌 달력 구현
다른 질문에 대한 솔루션을 찾고있을 때 .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
.
내 대답은 아니오 야.
달력은 강하게 문화의 산물입니다.
예를 들어 여기 지구상에도 여러 개의 달력이 있습니다.
어떤 문화에서는 하루가 시작되고 다른 문화에서는 일출에 끝납니다.
당신이 할 수있는 일은 통제 된 환경에서 어떤 보편적 상수를 초기 기준점으로 결정하는 것입니다. 예를 들어 원자 시계가 어떻게 만들어 지는지 .. 이것은 당신이 가장 작은 시간 측정을 할 수 있도록 도울 수 있습니다. 초,시, 일 등 다른 측정의 척도.
그러나 당신은 정말로 그것을 필요로하지 않습니다 .. 태양을 회전시키는 지구는 이미 똑같은 것을 얻기위한 자연적인 근원이며 건설 노력이 필요하지 않습니다 .. 그것은 만족스러운 정확도로 동일한 결과를 얻을 수 있으며 약 6 백만 명의 사람들이 지속적으로 QA를 수행하고 있습니다.
화성의 날짜 또는 시간은 무엇입니까? 그것은 지구에있는 것과 같습니다.
우리가 달력을 파악하는 방법의 통일성을 "폭발"하고 싶다면 .. 모든 천체가 자신의 현지 시간을 가질 수 있다는 이론화를 통해 ... 문제 없습니다.하지만 현지 시간에는 공통된 일반적인 공유 규칙이 없다는 것을 인정해야합니다. 그것들은 중재자이며 "문화"또는 개체 당 다른 중재자 선택과 관련이있을 것입니다. 즉, 구문 분석은 계산하기에 지옥이 될 것이며 개체별로 이루어져야 함을 의미합니다.
(내가 아이디어 자체에 반대한다는 의미는 아닙니다)
참고 URL : https://stackoverflow.com/questions/21940059/implementing-a-non-terrestrial-calendar
'developer tip' 카테고리의 다른 글
Java를 사용하여 16 진수를 RGB로 변환하는 방법은 무엇입니까? (0) | 2020.09.10 |
---|---|
그룹화 된 Pandas DataFrame에 함수를 병렬로 효율적으로 적용 (0) | 2020.09.10 |
jquery-mobile 및 knockoutjs를 사용하여 웹앱을 아키텍처하는 방법 (0) | 2020.09.10 |
기본 응용 프로그램 및 매개 변수가있는 C # 파일 열기 (0) | 2020.09.10 |
AngularJS $ http, CORS 및 http 인증 (0) | 2020.09.10 |