สำหรับปฏิทินเกรโกเรียนรูปแบบวันที่จะแตกต่างกันไปในแต่ละประเทศ มีสามรูปแบบหลักที่รู้จัก:
YY-MM-DD
(big-)DD-MM-YY
(น้อย endian)MM-DD-YY
(กลาง endian)
งานของคุณคือการเขียนโปรแกรมซึ่งกำหนดให้สายอักขระที่เป็นตัวแทนของวันที่ออกรูปแบบวันที่ที่เป็นไปได้ทั้งหมดซึ่งสตริงนี้สามารถตีความได้ว่าเป็นวันที่
กฎระเบียบ
- วันที่อินพุตอยู่ในรูปแบบ
xx-xx-xx
โดยที่แต่ละฟิลด์มีสองหลักและไม่มีการเติมเบาะ - วันที่นั้นถูกต้องเสมอ (ดังนั้นคุณจะไม่สามารถรับสิ่งต่าง ๆ เช่น 14-13-17)
- วันที่อยู่ในรูปแบบด้านบนอย่างน้อยหนึ่งรูปแบบเสมอ (ดังนั้นคุณจะไม่สามารถรับสิ่งต่าง ๆ เช่น 17-14-11)
- เพราะในความเป็นจริงเราอยู่ในโลกคู่ขนานมี 31 วันสำหรับทุกเดือนของปีและดังนั้นจึงไม่มีปีอธิกสุรทิน
- วันที่อยู่ระหว่าง 1 มกราคม 2001 และ 31 ธันวาคม 2099
- หากมีเพียงหนึ่งรูปแบบสำหรับวันที่รหัสจะต้องพิมพ์เท่านั้น (อนุญาตให้ขึ้นบรรทัดใหม่ต่อท้ายเท่านั้น)
- หากมีหลายรูปแบบสำหรับวันที่พวกเขาจะต้องคั่นด้วยเครื่องหมายจุลภาค, ช่องว่าง, การขึ้นบรรทัดใหม่หรือการรวมกันของเหล่านั้น
- คุณต้องส่งออกชื่อที่แน่นอนของรูปแบบ ไม่อนุญาตให้ใช้ค่าตามอำเภอใจที่แตกต่างกัน
- ไม่อนุญาตให้นำหน้าหรือต่อท้ายอักขระอื่นนอกเหนือจากพื้นที่ต่อท้าย
- ผลลัพธ์จะต้องเป็นตัวพิมพ์เล็ก
- คุณไม่ได้รับอนุญาตให้ใช้ฟังก์ชันวันที่หรือปฏิทินในตัว
- รูปแบบเอาต์พุตไม่จำเป็นต้องเรียงลำดับ
ตัวอย่าง
Input Output
30-05-17 big-endian, little-endian
05-15-11 middle-endian
99-01-02 big-endian
12-11-31 big-endian, little-endian, middle-endian
02-31-33 middle-endian
นี่คือcode-golfดังนั้นโค้ดที่สั้นที่สุดในหน่วยไบต์จะชนะ คำอธิบายได้รับการสนับสนุน
there are 31 days for every month of the year, and consequently no leap years
ดังนั้นนี่หมายความว่าไลบรารีวันที่ใด ๆ จะไม่มีประโยชน์อย่างมีประสิทธิภาพในตอนนี้?