พื้นหลัง
วันหยุดบางวันมีวันที่ที่แน่นอนและง่ายต่อการจดจำเช่น 31 ต.ค. 25 ธ.ค. เป็นต้น แต่บางวันต้องการแก้ไขปัญหา พวกเขาถูกระบุว่าเป็น "วันจันทร์แรกในเดือนกันยายน" หรือ "วันพฤหัสบดีที่สี่ในเดือนพฤศจิกายน" ฉันควรจะรู้ได้อย่างไรว่าเมื่อไหร่?
ทั้งหมดที่ฉันรู้ก็คือวันขอบคุณพระเจ้ากำลังใกล้เข้ามาอย่างรวดเร็วดังนั้นฉันจึงต้องการโปรแกรมที่จะช่วยฉันค้นหาว่ามันเป็นอย่างไร บางคนถึงกับบอกว่าเป็นวันพรุ่งนี้ดังนั้นโปรแกรมของคุณต้องสั้นที่สุดเท่าที่จะเป็นไปได้เพื่อให้แน่ใจว่าฉันสามารถพิมพ์ใหม่ได้ทันเวลา
ความท้าทาย
สร้างโปรแกรมหรือฟังก์ชั่นที่ให้ปีถึงหลักสี่หลัก (เช่น 2015 หรือ 1984) เอาท์พุทหรือส่งคืนวันที่วันขอบคุณพระเจ้าของสหรัฐอเมริกาในปีนั้น ขอบคุณพระเจ้าที่ถูกกำหนดให้เป็นวันพฤหัสบดีที่สี่ของเดือนพฤศจิกายนตามหน้าวิกิพีเดีย (เคล็ดลับ: หน้านั้นยังมีข้อมูลที่น่าสนใจเกี่ยวกับรูปแบบวันที่)
อินพุต : ตัวเลขทศนิยมที่มีตัวเลขสูงสุดสี่หลักที่แสดงถึงปีใน Common Era (CE) ตัวอย่าง: 987, 1984, 2101
เอาท์พุท : วันที่รวมถึงเดือนและวันที่วันขอบคุณพระเจ้าตกหรือจะตกถ้ามันมีอยู่ในปีนั้น นี่อาจเป็นรูปแบบที่สมเหตุสมผล ใช้วิจารณญาณที่ดีที่สุดของคุณ ใช้ปฏิทิน Gregorian ในทุกกรณีแม้ว่าจะไม่ได้ใช้งานในเวลานั้น
(หมายเหตุ: ตรวจสอบให้แน่ใจว่าจัดการกับการก้าวกระโดดอย่างถูกต้อง!)
กรณีทดสอบ อินพุต 1:
2015
เอาท์พุท 1:
Nov 26
อินพุต 2:
1917
เอาท์พุท 2:
Nov 22
เกณฑ์การให้คะแนน
ส่งจะได้รับคะแนนในไบต์ ฉันแนะนำเว็บไซต์นี้เพื่อติดตามจำนวนไบต์ของคุณแม้ว่าคุณสามารถใช้ตัวนับใด ๆ ที่คุณต้องการ
โบนัส
-25%จากคะแนนของคุณหากคุณจัดการกับวันที่ BCE เป็นตัวเลขติดลบ (เช่น -480 จะเป็นปีของการต่อสู้ของ Thermopylae)
อินพุตกรณีทดสอบเชิงลบ:
-480
ผลลัพธ์ที่สอดคล้องกัน:
Nov 25
นี่คือโค้ดกอล์ฟดังนั้นคะแนนต่ำสุดชนะ!
แก้ไข: ฉันกำลังทำเครื่องหมายการส่ง TI-BASIC ของ Thomas Kwa ว่ายอมรับ อย่าปล่อยให้เรื่องนี้ทำให้คุณท้อใจในการส่งผลงานใหม่!
ลีดเดอร์
นี่คือตัวอย่างข้อมูลเพื่อสร้างทั้งกระดานผู้นำปกติและภาพรวมของผู้ชนะตามภาษา
เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มคำตอบด้วยหัวข้อโดยใช้เทมเพลต Markdown ต่อไปนี้:
# Language Name, N bytes
ที่N
มีขนาดของส่งของคุณ หากคุณปรับปรุงคะแนนของคุณคุณสามารถเก็บคะแนนเก่าไว้ในพาดหัวโดยการตีพวกเขาผ่าน ตัวอย่างเช่น
# Ruby, <s>104</s> <s>101</s> 96 bytes
หากคุณต้องการรวมหลายตัวเลขไว้ในส่วนหัวของคุณ (เช่นเนื่องจากคะแนนของคุณคือผลรวมของไฟล์สองไฟล์หรือคุณต้องการแสดงรายการบทลงโทษการตั้งค่าสถานะของล่ามแยกต่างหาก) ตรวจสอบให้แน่ใจว่าคะแนนจริงเป็นตัวเลขสุดท้ายในส่วนหัว:
# Perl, 43 + 2 (-p flag) = 45 bytes
นอกจากนี้คุณยังสามารถตั้งชื่อภาษาให้เป็นลิงค์ซึ่งจะปรากฏในตัวอย่างกระดานแต้มนำ:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes