บทนำ
TL; DR
ในการท้าทายนี้คุณจะต้องคำนวณระยะดวงจันทร์สำหรับวันที่กำหนด
ความท้าทายนี้ได้รับแรงบันดาลใจจากการทดลองโสตทัศนูปกรณ์เกม จิตวิทยา " Superbrothers: Sword & Sworcery EP " ในS: S&S EPระยะของดวงจันทร์มีความสำคัญต่อผลลัพธ์ของการผจญภัยเนื่องจากมีเหตุการณ์บางอย่างเกิดขึ้นในเวลาที่กำหนดเท่านั้น
คำถามคือ: ช่วงจันทรคติใดมีอยู่ในวันที่ระบุ แต่ละช่วงหลัก - จากดวงจันทร์ใหม่ไปจนถึงไตรมาสแรกถึงพระจันทร์เต็มดวงถึงไตรมาสที่สาม - มีความยาวประมาณ 7.38 วัน วัฏจักรดวงจันทร์ทั้งหมดอยู่ที่ประมาณ 29.52 วัน ขึ้นอยู่กับค่าเหล่านี้มีวิธีการคำนวณที่หลากหลายอยู่ 1
อินพุต
- วันที่ตามปฏิทินเกรกอเรียนระหว่างวันที่ 1 มกราคม 1970 และ 31 ธันวาคม 2116
- คุณสามารถเลือกหนึ่งในรูปแบบต่อไปนี้:
yyyy-mm-dd
,dd.mm.yyyy
,dd/mm/yyyy
, หรือyyyymmdd
ddmmyyyy
เอาท์พุต
เอาต์พุตดัชนี[0-7]
ของเฟสจันทรคติโดยอิงตามอาเรย์ที่มีดัชนีเป็นศูนย์:
['New moon', 'Waxing crescent', 'First quarter', 'Waxing gibbous', 'Full moon', 'Waning gibbous', 'Third quarter', 'Waning crescent`]
ความต้องการ
- คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่น หากคุณใช้ฟังก์ชันที่ไม่ระบุชื่อโปรดระบุตัวอย่างของวิธีการเรียกใช้
- อินพุตได้รับการยอมรับจาก
STDIN
อาร์กิวเมนต์บรรทัดคำสั่งเป็นพารามิเตอร์ฟังก์ชันหรือจากเทียบเท่าที่ใกล้เคียงที่สุด - นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ
- ไม่อนุญาตให้ใช้บิวด์อินหรือไลบรารี่ภายนอกที่คำนวณระยะดวงจันทร์ 2
- ช่องโหว่มาตรฐานไม่ได้รับอนุญาต
การทดสอบ
ค่าคือ: date | index of the phase | illumination | name
วงจรจันทรคติเต็ม:
08.02.2016 | 0 | 0% | New moon
07.02.2016 | 7 | 2% | Waning crescent
07.02.2016 | 7 | 2% | Waning crescent
06.02.2016 | 7 | 6% | Waning crescent
05.02.2016 | 7 | 12% | Waning crescent
04.02.2016 | 7 | 19% | Waning crescent
03.02.2016 | 7 | 28% | Waning crescent
02.02.2016 | 7 | 37% | Waning crescent
01.02.2016 | 6 | 47% | Third quarter
31.01.2016 | 5 | 56% | Waning gibbous
30.01.2016 | 5 | 65% | Waning gibbous
29.01.2016 | 5 | 74% | Waning gibbous
28.01.2016 | 5 | 82% | Waning gibbous
27.01.2016 | 5 | 89% | Waning gibbous
26.01.2016 | 5 | 94% | Waning gibbous
25.01.2016 | 5 | 98% | Waning gibbous
24.01.2016 | 4 | 100% | Full moon
23.01.2016 | 3 | 100% | Waxing gibbous
22.01.2016 | 3 | 97% | Waxing gibbous
21.01.2016 | 3 | 93% | Waxing gibbous
20.01.2016 | 3 | 86% | Waxing gibbous
19.01.2016 | 3 | 77% | Waxing gibbous
18.01.2016 | 3 | 67% | Waxing gibbous
17.01.2016 | 3 | 56% | Waxing gibbous
16.01.2016 | 2 | 45% | First quarter
15.01.2016 | 1 | 33% | Waxing crescent
14.01.2016 | 1 | 23% | Waxing crescent
13.01.2016 | 1 | 14% | Waxing crescent
12.01.2016 | 1 | 7% | Waxing crescent
11.01.2016 | 1 | 2% | Waxing crescent
10.01.2016 | 0 | 0% | New moon
กรณีทดสอบแบบสุ่ม:
14.12.2016 | 4 | 100% | Full moon
16.10.1983 | 3 | 75% | Waxing gibbous
04.07.1976 | 2 | 47% | First quarter
28.11.1970 | 0 | 0% | New moon
ในฐานะที่เป็นวิธีการส่วนใหญ่จะไม่ถูกต้องไปยังระดับทางวิทยาศาสตร์และคุณยังได้รับผลการผสมบนเว็บไซต์ที่แตกต่างกันสำหรับคู่ของวันนี้ก็เป็นที่ยอมรับได้ถ้าผลลัพธ์ของคุณอยู่ภายใน± 1 วันช่วง
โบนัส
ลดจำนวนไบต์ของคุณและถอนออก :
- 15% - พิมพ์ชื่อจริงของเฟสตามที่ระบุไว้ในส่วนเอาท์พุทแทนดัชนี
- 25% - พิมพ์วันที่ของพระจันทร์เต็มดวงใหม่และฟูลมูนที่คั่นด้วยช่องว่างหรือบรรทัดใหม่ในอินพุตว่าง
1ตัวอย่าง: การคำนวณเฟสบน Wikipedia
2ขออภัยMathematica