การป้อนข้อมูล:
วันที่ (ที่มีdd, MMและyyyy) Date-object หรือจำนวนเต็มสามจำนวนที่แยกกันก็สามารถใช้เป็นอินพุตได้เช่นกัน
เอาท์พุท:
แต่ละส่วน ( dd, MMและyyyy) หวนกลับเป็นรายบุคคลและกว่าปัดเศษให้เป็นวันที่ถูกต้องที่ใกล้ที่สุด
ตัวอย่างเช่น (ในรูปแบบdd-MM-yyyy):
21-10-2016กลายเป็น12-01-6102
กฏท้าทาย:
- เพียง
dd,MM,yyyyถูกต้อง แต่การสั่งซื้อและการที่คุณใช้สัญลักษณ์แยก-เป็นทางเลือกของคุณเอง
ดังนั้นนี่คือตัวอย่างรูปแบบที่ถูกต้อง:dd-MM-yyyy;MM/dd/yyyy;yyyy MM dd;ddMMyyyyฯลฯ
และนี่คือตัวอย่างรูปแบบที่ไม่ถูกต้อง:dd MMM yyyy;dd-MM-'yy; เป็นต้น - นอกจากนี้คุณยังสามารถเลือกที่จะป้อนวันที่วัตถุหากภาษาของคุณสนับสนุนหรือพารามิเตอร์จำนวนเต็มสามแยกจากกันแทนสตริงที่เป็นตัวแทนของวันที่
- โปรดระบุว่าคุณใช้รูปแบบวันที่ใด! (และอินพุตและเอาต์พุตจะต้องอยู่ในรูปแบบเดียวกัน) นอกจากนี้ยังได้รับอนุญาตให้ส่งออก Date-object ตราบใดที่สามารถจัดการกับกรณีทดสอบและกฎการท้าทายด้านล่าง
- การเปลี่ยนแปลงปฏิทินจูเลียนเป็นเกรกอเรียนถูกละเว้นสำหรับความท้าทายนี้ ดังนั้นเป็นเพียงปีตรงกันข้ามที่ถูกต้องสำหรับ
1582ดูข้อมูลท้าทาย / เคล็ดลับสำหรับปีเดือนและวันที่ถูกต้องทั้งหมด2851 - เนื่องจากคุณไม่สามารถมีกุมภาพันธ์ย้อนกลับของเดือนอื่น ๆ คุณไม่ต้องกังวลกับปีอธิกสุรทิน
กลับรายการทั้งหมดปีเดือนและวันที่:
- ปีสามารถกลับรายการได้โดยไม่มีปัญหาเพิ่มจาก0001 (กลับรายการ
1000) เป็น9999 (ยังคงอยู่9999) (ดังนั้น0000ไม่ใช่อินพุตที่ถูกต้องและไม่มีกรณีทดสอบสำหรับมัน) - เดือนเดียวที่คุณจะกลับรายการคือ: มกราคม (กลับจากเดือนตุลาคม /
10); ตุลาคม (กลับจากเดือนมกราคม /01); พฤศจิกายน (เหลือพฤศจิกายน /11); และธันวาคม (กลับรายการจากทุก ๆ เดือน /02-09,12) - วันที่คุณจะกลับรายการคือ: 01 (กลับรายการจาก
10), 02 (กลับรายการจาก20), 03 (กลับรายการจาก30), 10 (กลับรายการจาก01), 11 (เหลือ11), 12 (กลับรายการ21), 13 (กลับรายการจาก31) , 20 (กลับจาก02), 21 (กลับจาก12), 22 (เหลือ22), 30 (กลับจาก03หรือเท่ากับ31สำหรับเดือนพฤศจิกายน!), 31 (กลับจาก04-09/13-19/23-29)
กฎทั่วไป:
- นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ
อย่าปล่อยให้ภาษาที่ใช้รหัสกอล์ฟกีดกันคุณจากการโพสต์คำตอบด้วยภาษาที่ไม่ codegolfing พยายามหาคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรม 'ใด ๆ ' - กฎมาตรฐานใช้สำหรับคำตอบของคุณดังนั้นคุณจึงได้รับอนุญาตให้ใช้ STDIN / STDOUT ฟังก์ชั่น / วิธีที่มีพารามิเตอร์ที่เหมาะสมและส่งคืน statement / output, โปรแกรมเต็มรูปแบบ การโทรของคุณ
- ช่องโหว่เริ่มต้นเป็นสิ่งต้องห้าม
- หากเป็นไปได้โปรดเพิ่มลิงค์พร้อมทดสอบรหัสของคุณ
- นอกจากนี้โปรดเพิ่มคำอธิบายหากจำเป็น
กรณีทดสอบ ( dd-MM-yyyyตามรูปแบบ):
21-07-2016 -> 12-12-6102
12-11-1991 -> 21-11-1991
01-01-2000 -> 10-10-0002
27-08-1875 -> 31-12-5781
18-12-2010 -> 31-12-0102
13-01-1981 -> 31-10-1891
04-11-1671 -> 30-11-1761 // Semi-tricky case, since November has 30 days
28-11-2036 -> 30-11-6302 // Semi-tricky case, since November has 30 days
14-06-1855 -> 31-12-5581
30-10-9999 -> 03-01-9999
01-01-2851 -> 10-10-1582
70ล้อมรอบด้วยปีที่เพิ่มขึ้น
10-10-2การส่งออกที่ถูกต้องในกรณีที่สาม?
21-07-2016จะหวนกลับซึ่งเป็นโค้งมนไป12-70-610212-12-6102ไม่แน่ใจว่าคุณจะได้รับผลที่ตามมา##-10-6107..