날짜 라이브러리가 내장 된 언어와 언어가없는 언어 사이에서 경기장을 평준화하기 위해 가상의 달력으로 작업 해 봅시다. 잊혀진 영역은 ( ? 던전 앤 드래곤에 대한) 캠페인 설정. 물론 각자 고유 한 달력이 있습니다.
하프 토스의 달력
편리하게도 잊혀진 영역에서 1 년은 365 일입니다. 또한 달력에는 12 개월이 있습니다. 그러나 이것은 흥미로운 곳입니다. 매월 정확히 30 일입니다. 나머지 5 일은 해당 월 사이 의 공휴일입니다 . 다음은 순서대로 월과 공휴일입니다 (공휴일 들여 쓰기).
1 Deepwinter
Midwinter
2 The Claw of Winter
3 The Claw of the Sunsets
4 The Claw of the Storms
Greengrass
5 The Melting
6 The Time of Flowers
7 Summertide
Midsummer
[Shieldmeet]
8 Highsun
9 The Fading
Highharvestide
10 Leaffall
11 The Rotting
The Feast of the Moon
12 The Drawing Down
여섯 번째 휴일을 괄호 안에 넣었습니다. 이 날은 4 년마다 발생하는 비약의 날입니다. (그렇습니다. 수세기 동안 추가 세 나니가 없습니다).
월 이름에 대한 참고 사항 : 각 월에는 공식적인 이름과 공통 이름이 있습니다. 위의 일반적인 이름입니다. 나는 그들이 더 흥미로운 압축을 허용한다고 생각하기 때문에 그것들을 선택했습니다.
몇 년 동안 번호가 매겨졌지만 가장 널리 퍼져있는 것은 Dalereckoning 으로 DR로 단축되었습니다 . (또한 매년 하나 이상의 이름 이 있지만, 우리는 그것을 귀찮게하지 않을 것입니다.)
날짜의 구성 요소는 쉼표와 공백으로 구분해야합니다. 전체적으로 유효한 날짜는 다음과 같습니다.
4, The Melting, 1491 DR
또는
Shieldmeet, 1464 DR
휴일에는 요일 번호가 없습니다. (나는 4th of The Melting
달 동안 더 좋을 것이라고 생각 하지만 서수를 이것으로 드래그하고 싶지 않습니다.)
각주 : xnor가 모든 단일 날짜 챌린지에 윤년 계산이 필요하다고 불평했을 때이 문제를 생각해 냈습니다. 나는 그것을 완전히 제거하는 데 실패했지만 적어도이 달력에서는 단일 모듈로 일뿐입니다.
도전
정수뿐만 아니라 Harptos 달력의 유효한 날짜가 주어지면 D
날짜가 D
며칠 후에 출력 됩니다. 참고 D
사용자가 날짜를 반환해야하는 경우에있을 수 부정적 D
일 이전합니다.
STDIN (또는 가장 가까운 대안), 명령 행 인수 또는 함수 인수를 통해 입력을 받고 STDOUT (또는 가장 가까운 대안), 함수 리턴 값 또는 함수 (out) 매개 변수를 통해 결과를 출력하는 프로그램 또는 함수를 작성할 수 있습니다.
연도가 긍정적이고 2000 미만이라고 가정 할 수 있습니다.
표준 코드 골프 규칙이 적용됩니다.
테스트 사례
첫 12 개 정도의 테스트 사례는 휴일과 윤년을 둘러싼 모든 주요 사례를 테스트해야합니다. 다음 세트는 여러 해에 걸친 작업 범위와 모든 월 및 휴일이 구현되었는지 테스트하는 것입니다. 후반은 모두 동일한 테스트 사례이지만 음수 오프셋입니다.
"30, Summertide, 1491 DR" 1 => "Midsummer, 1491 DR"
"30, Summertide, 1491 DR" 2 => "1, Highsun, 1491 DR"
"Midsummer, 1491 DR" 1 => "1, Highsun, 1491 DR"
"30, Summertide, 1492 DR" 1 => "Midsummer, 1492 DR"
"30, Summertide, 1492 DR" 2 => "Shieldmeet, 1492 DR"
"30, Summertide, 1492 DR" 3 => "1, Highsun, 1492 DR"
"Midsummer, 1492 DR" 1 => "Shieldmeet, 1492 DR"
"Midsummer, 1492 DR" 2 => "1, Highsun, 1492 DR"
"Shieldmeet, 1492 DR" 1 => "1, Highsun, 1492 DR"
"1, Highsun, 1490 DR" 365 => "1, Highsun, 1491 DR"
"1, Highsun, 1491 DR" 365 => "Shieldmeet, 1492 DR"
"Shieldmeet, 1492 DR" 365 => "Midsummer, 1493 DR"
"Midsummer, 1493 DR" 365 => "Midsummer, 1494 DR"
"Shieldmeet, 1500 DR" 365 => "Midsummer, 1501 DR"
"14, Deepwinter, 654 DR" 5069 => "The Feast of the Moon, 667 DR"
"Midwinter, 17 DR" 7897 => "15, The Fading, 38 DR"
"3, The Claw of Winter, 1000 DR" 813 => "25, The Claw of the Storms, 1002 DR"
"Greengrass, 5 DR" 26246 => "9, The Claw of the Sunsets, 77 DR"
"30, The Melting, 321 DR" 394 => "29, The Time of Flowers, 322 DR"
"17, The Time of Flowers, 867 DR" 13579 => "20, Highsun, 904 DR"
"Highharvestide, 1814 DR" 456 => "30, The Drawing Down, 1815 DR"
"23, The Rotting, 1814 DR" 3616 => "16, Leaffall, 1824 DR"
"1, Deepwinter, 1 DR" 730499 => "30, The Drawing Down, 2000 DR"
"Midsummer, 1491 DR" -1 => "30, Summertide, 1491 DR"
"1, Highsun, 1491 DR" -2 => "30, Summertide, 1491 DR"
"1, Highsun, 1491 DR" -1 => "Midsummer, 1491 DR"
"Midsummer, 1492 DR" -1 => "30, Summertide, 1492 DR"
"Shieldmeet, 1492 DR" -2 => "30, Summertide, 1492 DR"
"1, Highsun, 1492 DR" -3 => "30, Summertide, 1492 DR"
"Shieldmeet, 1492 DR" -1 => "Midsummer, 1492 DR"
"1, Highsun, 1492 DR" -2 => "Midsummer, 1492 DR"
"1, Highsun, 1492 DR" -1 => "Shieldmeet, 1492 DR"
"1, Highsun, 1491 DR" -365 => "1, Highsun, 1490 DR"
"Shieldmeet, 1492 DR" -365 => "1, Highsun, 1491 DR"
"Midsummer, 1493 DR" -365 => "Shieldmeet, 1492 DR"
"Midsummer, 1494 DR" -365 => "Midsummer, 1493 DR"
"Midsummer, 1501 DR" -365 => "Shieldmeet, 1500 DR"
"The Feast of the Moon, 667 DR" -5069 => "14, Deepwinter, 654 DR"
"15, The Fading, 38 DR" -7897 => "Midwinter, 17 DR"
"25, The Claw of the Storms, 1002 DR" -813 => "3, The Claw of Winter, 1000 DR"
"9, The Claw of the Sunsets, 77 DR" -26246 => "Greengrass, 5 DR"
"29, The Time of Flowers, 322 DR" -394 => "30, The Melting, 321 DR"
"20, Highsun, 904 DR" -13579 => "17, The Time of Flowers, 867 DR"
"30, The Drawing Down, 1815 DR" -456 => "Highharvestide, 1814 DR"
"16, Leaffall, 1824 DR" -3616 => "23, The Rotting, 1814 DR"
"30, The Drawing Down, 2000 DR" -730499 => "1, Deepwinter, 1 DR"