Écrivez un programme qui prend une date de naissance (mois et jour du mois) comme entrée et produit le signe, l'élément et la qualité correspondants du zodiaque occidental . Aux fins de ce défi, ceux-ci sont définis exactement comme dans le tableau de la page wikipedia liée:
Sign Date Range Element Quality
Aries March 21 to April 19 Fire Cardinal
Taurus April 20 to May 20 Earth Fixed
Gemini May 21 to June 21 Air Mutable
Cancer June 22 to July 22 Water Cardinal
Leo July 23 to August 22 Fire Fixed
Virgo August 23 to September 22 Earth Mutable
Libra September 23 to October 23 Air Cardinal
Scorpio October 24 to November 20 Water Fixed
Sagittarius November 21 to December 22 Fire Mutable
Capricorn December 23 to January 20 Earth Cardinal
Aquarius January 21 to February 21 Air Fixed
Pisces February 22 to March 20 Water Mutable
Règles
- Le signe, l'élément et la qualité seront calculés à partir de la date d'entrée exactement selon le tableau wikipedia.
- Je donne une certaine liberté sur le format de date d'entrée (voir la section Entrée ci-dessous). Vous devez indiquer clairement dans votre réponse le format que vous utilisez.
- Si une date non valide est fournie (date non comparable ou mois ou jour du mois hors limites), le programme se termine avec le message
Invalid date
. - Le programme doit gérer correctement les années bissextiles. c'est-à-dire si le 29 février est l'entrée, alors la sortie doit être correctement
Pisces, Water, Mutable
. - Les bibliothèques de date / API de votre langue sont autorisées, mais toutes les API qui calculent spécifiquement les signes du zodiaque sont interdites.
- Des «failles» standard qui ne sont plus drôles
- Il s'agit de code-golf , donc la réponse la plus courte en octets l'emporte.
Contribution
- Le programme peut lire la date d'entrée à partir de STDIN, de la ligne de commande, des variables d'environnement ou de la méthode qui convient à la langue de votre choix.
- Ce n'est pas principalement un exercice d'analyse de chaîne de données, de sorte que la chaîne d'entrée peut être fournie dans le format que vous choisissez, tant qu'elle ne comprend que des composants de mois et de jour et pas d'autres valeurs (telles que l'année ou l'heure) . Par exemple,
Jul 24
ou24th of July
ou7/24
ou24/07
ou n'importe quel format est pratique. Si une entrée ne correspondant pas à votre choix de format d'entrée est entrée, l'Invalid date
erreur doit être levée.
Production
- Le programme sortira sur STDOUT, une boîte de dialogue ou toute autre méthode d'affichage convenant à la langue de votre choix.
- Le format de sortie sera le signe, l'élément et la qualité séparés par une virgule et un espace:
Sign, Element, Quality
Exemples
Input Output
1/1 Capricorn, Earth, Cardinal
2/29 Pisces, Water, Mutable
7/24 Leo, Fire, Fixed
13/1 Invalid date
2/31 Invalid date
-1/-1 Invalid date
1st of Golfember Invalid date
Jan 21 -> 21
. . Feb 5 -> 36
) un format d'entrée valide?