अंतर्निहित लाइब्रेरी और बिना उन भाषाओं के बीच खेल के क्षेत्र को समतल करने के प्रयास में, चलो एक काल्पनिक कैलेंडर के साथ काम करते हैं। भूल गए लोग डंगऑन और ड्रेगन के लिए एक ( ? ) अभियान सेटिंग हैं। बेशक, प्रत्येक का अपना कैलेंडर है।
हार्प्टोस का कैलेंडर
आसानी से, एक साल के लिए भूल गए स्थानों में भी 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
ध्यान दें कि मैंने कोष्ठक में छठा अवकाश डाला है। यह छलांग का दिन है जो केवल हर चार साल में होता है (हां, यह बात है - सदियों के साथ कोई अतिरिक्त शेंनिगन नहीं हैं)।
महीने के नामों के बारे में ध्यान दें: प्रत्येक महीने में एक औपचारिक और एक सामान्य नाम होता है। उपरोक्त सामान्य नाम हैं। मैंने उन्हें चुना है क्योंकि मुझे लगता है कि वे अधिक दिलचस्प संपीड़न के लिए अनुमति देते हैं।
वहाँ कई वर्षों की संख्या है, लेकिन सबसे व्यापक एक Dalereckoning है , डॉ के लिए छोटा है । (इसके अलावा, हर साल एक या एक से अधिक नाम होते हैं , लेकिन हम इससे परेशान नहीं होंगे।)
दिनांक के घटकों को अल्पविराम और एक स्थान से अलग किया जाना चाहिए। सभी में, एक मान्य तिथि लग सकती है:
4, The Melting, 1491 DR
या
Shieldmeet, 1464 DR
ध्यान दें कि छुट्टियों के लिए कोई दिन की संख्या नहीं है। (मुझे लगता 4th of The Melting
है कि महीनों के दिनों के लिए अच्छा होगा, लेकिन मैं इसमें क्रमिक संख्याओं को नहीं खींचना चाहता।)
फुटनोट: मैं इसके साथ आया था जब xnor ने शिकायत की थी कि हर एक तारीख की चुनौती को लीप वर्ष की गणना की आवश्यकता होती है। मैं इसे पूरी तरह से समाप्त करने में विफल रहा हूं, लेकिन कम से कम यह इस कैलेंडर में केवल एक मोडुलो है।
चुनौती
हार्प्टोस के कैलेंडर की एक मान्य तिथि और साथ ही एक पूर्णांक को देखते हुए D
, तिथि के D
बाद के दिनों का उत्पादन करते हैं । ध्यान दें कि D
नकारात्मक हो सकता है, जिस स्थिति में आपको तारीख वापस करनी चाहिएD
दिन ।
आप STDIN (या निकटतम विकल्प), कमांड-लाइन तर्क या फ़ंक्शन तर्क के माध्यम से इनपुट ले रहे हैं और STDOUT (या निकटतम विकल्प), फ़ंक्शन रिटर्न मान या फ़ंक्शन (आउट) पैरामीटर के माध्यम से परिणाम लिख सकते हैं।
आप मान सकते हैं कि वर्ष सकारात्मक है और 2000 से कम है।
मानक कोड-गोल्फ नियम लागू होते हैं।
परीक्षण के मामलों
पहले दर्जन या तो परीक्षण मामलों में छुट्टियों और लीप वर्षों के आसपास के सभी किनारे के मामलों का परीक्षण करना चाहिए। अगला सेट यह परीक्षण करने के लिए है कि कई वर्षों के काम की सीमा है और सभी महीने और छुट्टियों को लागू किया गया है। उत्तरार्ध फिर से एक ही परीक्षण के मामले हैं लेकिन नकारात्मक ऑफसेट के साथ।
"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"