Giriş
tl; Dr.
Bu meydan okumada, belirli bir tarih için ayın evresini hesaplamanız gerekir.
Bu meydan okuma oyun psiko sosyal görsel-işitsel deney " Superbrothers: Kılıç ve Sworcery EP " esinlenerek . In S: S & S EP bazı olaylar zamanında belirli bir noktada sadece meydana geldikleri Ay'ın evreleri maceranın sonucuna önemlidir.
Soru şudur: Belirli bir tarihte hangi ay fazının mevcut olduğu. Yeni aydan ilk çeyreğe kadar dolunaydan üçüncü çeyreğe kadar her ana aşama yaklaşık 7.38 gün uzunluğundadır. Tüm ay döngüsü kabaca 29.52 gündür. Bu değerlere dayanarak çeşitli hesaplama yöntemleri mevcuttur. 1
Giriş
- 1 Ocak 1970 ile 31 Aralık 2116 tarihleri arasında Gregoryen takvimine dayanan bir tarih.
- Aşağıdaki biçimlerden birini seçebilirsiniz:
yyyy-mm-dd
,dd.mm.yyyy
,dd/mm/yyyy
,yyyymmdd
veyaddmmyyyy
.
Çıktı
[0-7]
Bu sıfır endeksli diziye dayalı ay fazının dizinini çıktılayın:
['New moon', 'Waxing crescent', 'First quarter', 'Waxing gibbous', 'Full moon', 'Waning gibbous', 'Third quarter', 'Waning crescent`]
Gereksinimler
- Bir program veya işlev yazabilirsiniz. Anonim bir işleve giderseniz, lütfen onu nasıl çağıracağınıza ilişkin bir örnek ekleyin.
- Girdi
STDIN
, komut satırı bağımsız değişkenlerinden, işlev parametreleri olarak veya en yakın eşdeğerden kabul edilir. - Bu kod-golf çok kısa bayt kazanır cevap.
- Ay evresini hesaplayan yerleşik veya harici kitaplıklara izin verilmez. 2
- Standart boşluklara izin verilmez.
Testler
Değerler: date | index of the phase | illumination | name
Tam bir ay döngüsü:
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
Rastgele test durumları:
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
Çoğu yöntem bilimsel bir düzeyde doğru olmadığından ve birkaç gün boyunca farklı web sitelerinde karışık sonuçlar aldığınızdan, sonuçlarınızın ± 1 gün aralığında olması kabul edilebilir .
Bonus
Bayt sayınızı azaltın ve geri çekin :
- % 15 - Fazın gerçek adını , dizini yerine Çıktı bölümünde listelendiği şekilde yazdırın .
- % 25 - Yaklaşan yeni ve dolunayın tarihlerini, boş girişte boşluk veya satırsonu ile ayırarak yazdırın.
1 Örneğin: Wikipedia'da faz hesaplanıyor .
2 Üzgünüm Mathematica .