แนวคิดคือ: เขียนฟังก์ชั่นเพื่อพิมพ์ระยะเวลาจากวันนี้ / วันนี้ (ณ เวลาที่เรียกใช้ฟังก์ชัน) จนกระทั่งวันที่กำหนดเป็นอาร์กิวเมนต์
สมมติฐาน:
- วันที่ป้อนจะเป็นวันพรุ่งนี้หรือหลังจากนั้นในอนาคต
- วันที่ป้อนจะไม่เกิน 10 ปีในอนาคต
กฎ:
- ผลลัพธ์จะต้องอยู่ในรูปแบบนี้: "[z ปี (s)], [x เดือน (s)], y วัน (s) จนถึง -Input Date-"
- กรอบเวลาส่งออก (วัน / เดือน / ปี) จะต้องได้รับการแก้ไขอย่างถูกต้อง เช่น
1 month
ไม่1 months
- ข้อมูลที่ป้อนสามารถอยู่ในรูปแบบวันที่ใดก็ได้ที่คุณต้องการ (3/15/12 - 15 มีนาคม 2012 - 2012.03.15)
ตัวอย่าง: สมมติว่าโปรแกรมทำงานในวันที่ 15 มีนาคม 2012:
- วันที่ป้อนของ
3/20/12
=5 days until 3/20/12
- ไม่ได้ป้อนวันที่
4/16/12
=1 month, 1 days until 3/20/12
- วันที่ป้อนของ
2012.04.20
=1 month, 5 days until 2012.04.20
- ไม่ได้ป้อนวันที่
2012.04.20
=36 days until 2012.04.20
- วันที่ป้อนของ
10/31/17
=5 years, 7 months, 16 days until 10/31/17
- วันที่ป้อนของ
3/15/13
=1 year until 3/15/13
นี่คือรหัสกอล์ฟดังนั้นรหัสความยาวที่สั้นที่สุดจึงชนะ
ฉันคิดว่าเพื่อให้มีกำหนดเวลาฉันจะเลือกคำตอบใน:
23 มีนาคม 2012!
(นี่คือคำถาม CG แรกของฉันดังนั้นฉันยินดีที่จะแก้ไขข้อผิดพลาดในส่วนของฉัน!)
now-<input time>
now until <input time>
:: p