ในความพยายามที่จะยกระดับสนามเด็กเล่นระหว่างภาษาที่มีไลบรารีวันที่ในตัวและที่ไม่มีให้ลองทำงานกับปฏิทินสมมติ อาณาจักรลืมคือการตั้งค่าแคมเปญ( ? ) สำหรับ Dungeons & Dragons แน่นอนว่าแต่ละคนมีปฏิทินของตัวเอง
ปฏิทินของ Harptos
สะดวกสบายหนึ่งปีในอาณาจักรที่ถูกลืมยังมี 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
ขอให้สังเกตว่าฉันได้ใส่วันหยุดที่หกในวงเล็บ วันนี้เป็นวันอธิกสุรทินที่เกิดขึ้นทุก ๆ สี่ปีเท่านั้น (ใช่นั่นคือ - ไม่มีคนเสฉวนเพิ่มเติมมาหลายศตวรรษ)
หมายเหตุด้านข้างเกี่ยวกับชื่อเดือน: แต่ละเดือนมีชื่อทางการและชื่อสามัญ ข้างต้นเป็นชื่อสามัญ ฉันเลือกมันเพราะฉันคิดว่าพวกมันยอมให้มีการบีบอัดที่น่าสนใจ
มีหลาย numberings ของปีที่ผ่านมามี แต่ที่แพร่หลายมากที่สุดคือDalereckoning , ลงไปDR (นอกจากนี้ทุกปีมีชื่อหนึ่งชื่อหรือมากกว่าแต่เราจะไม่ไปสนใจชื่อนั้น)
ส่วนประกอบของวันที่ควรคั่นด้วยเครื่องหมายจุลภาคและเว้นวรรค โดยรวมแล้ววันที่ที่ถูกต้องอาจมีลักษณะดังนี้:
4, The Melting, 1491 DR
หรือ
Shieldmeet, 1464 DR
โปรดทราบว่าไม่มีหมายเลขวันสำหรับวันหยุด (ฉันคิดว่า4th of The Melting
น่าจะดีกว่าในช่วงหลายเดือน แต่ฉันไม่ต้องการลากเลขลำดับเข้าไปในสิ่งนี้)
เชิงอรรถ: ฉันเกิดขึ้นเมื่อ xnor บ่นว่าการท้าทายทุก ๆ วันที่ต้องการการคำนวณปีอธิกสุรทิน ฉันล้มเหลวในการกำจัดอย่างสมบูรณ์ แต่อย่างน้อยก็เป็นโมดูโลเดียวในปฏิทินนี้
ความท้าทาย
ได้รับวันที่ที่ถูกต้องของปฎิทินของ Harptos รวมถึงจำนวนเต็ม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"