introduction
tl; dr
Dans ce défi, vous devez calculer la phase de la lune pour une date donnée.
Ce défi est inspiré de l' expérience audiovisuelle psycho-sociale du jeu " Superbrothers: Sword & Sworcery EP ". Dans S: S&S EP, les phases de la lune sont importantes pour l'issue de l'aventure, car certains événements ne se produisent qu'à un moment précis.
La question est: quelle phase lunaire est présente à une date précise. Chaque phase principale - de la nouvelle lune au premier trimestre à la pleine lune au troisième trimestre - dure environ 7,38 jours. L'ensemble du cycle lunaire dure environ 29,52 jours. Sur la base de ces valeurs, il existe différentes méthodes de calcul. 1
Contribution
- Une date basée sur le calendrier grégorien, entre le 1er janvier 1970 et le 31 décembre 2116.
- Vous pouvez choisir l' un des formats suivants:
yyyy-mm-dd
,dd.mm.yyyy
,dd/mm/yyyy
,yyyymmdd
ouddmmyyyy
.
Production
Générez l'index [0-7]
de la phase lunaire sur la base de ce tableau indexé zéro:
['New moon', 'Waxing crescent', 'First quarter', 'Waxing gibbous', 'Full moon', 'Waning gibbous', 'Third quarter', 'Waning crescent`]
Exigences
- Vous pouvez écrire un programme ou une fonction. Si vous utilisez une fonction anonyme, veuillez inclure un exemple de la façon de l'invoquer.
- L'entrée est acceptée à partir des
STDIN
arguments de ligne de commande, en tant que paramètres de fonction ou de l'équivalent le plus proche. - C'est le code-golf, donc la réponse la plus courte en octets gagne.
- Les bibliothèques intégrées ou externes qui calculent la phase de lune ne sont pas autorisées. 2
- Les failles standard ne sont pas autorisées.
Les tests
Les valeurs sont: date | index of the phase | illumination | name
Un cycle lunaire complet:
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
Cas de test aléatoires:
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
Comme la plupart des méthodes ne sont pas précises à un niveau scientifique et que vous obtenez également des résultats mitigés sur différents sites Web pendant quelques jours, il est acceptable que vos résultats se situent dans une plage de ± 1 jour .
Prime
Réduisez votre nombre d'octets et retirez :
- 15% - Imprime le nom réel de la phase comme indiqué dans la section Sortie au lieu de son index.
- 25% - Imprimez les dates de la nouvelle et de la pleine lune à venir séparées par un espace ou une nouvelle ligne sur une entrée vide.
1 Par exemple: Phase de calcul sur Wikipédia.
2 Désolé Mathematica .