การป้อนข้อมูล:
วันที่ (ที่มี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-6102
12-12-6102
ไม่แน่ใจว่าคุณจะได้รับผลที่ตามมา##-10-6107
..