Scrivi un programma che prende una data di nascita (mese e giorno del mese) come input e genera il segno, l'elemento e la qualità dello zodiaco occidentale corrispondenti . Ai fini di questa sfida, questi sono definiti esattamente come nella tabella nella pagina Wikipedia collegata:
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
Regole
- Il segno, l'elemento e la qualità saranno calcolati dalla data di input esattamente secondo la tabella di Wikipedia.
- Sto dando una certa libertà sul formato della data di input (vedere la sezione Input di seguito). È necessario indicare chiaramente nella risposta quale formato si sta utilizzando.
- Se viene fornita una data non valida (data non analizzabile, o mese o giorno del mese fuori intervallo), il programma uscirà con il messaggio
Invalid date. - Il programma deve gestire correttamente gli anni bisestili. cioè se il 29 febbraio è l'input, allora l'output deve essere correttamente
Pisces, Water, Mutable. - Le librerie / API della data della tua lingua sono consentite, ma tutte le API che calcolano specificamente i segni dello zodiaco sono vietate.
- "Scappatoie" standard che non sono più divertenti
- Questo è code-golf , quindi vince la risposta più breve in byte.
Ingresso
- Il programma può leggere la data di input da STDIN, dalla riga di comando, dalle variabili di ambiente o da qualunque metodo sia conveniente per la tua lingua preferita.
- Questo non è principalmente un esercizio di analisi dei dati, quindi la stringa di input può essere fornita in qualunque formato tu scelga, purché sia composta solo da componenti del mese e del giorno del mese e non di altri valori (come l'anno o l'ora) . Ad esempio
Jul 24o24th of Julyo7/24o24/07o qualsiasi formato sia conveniente. Se viene immesso un input che non corrisponde alla scelta del formato di input, èInvalid datenecessario generare l' errore.
Produzione
- Il programma verrà trasmesso su STDOUT, finestra di dialogo o qualsiasi altro metodo di visualizzazione sia conveniente per la tua lingua preferita.
- Il formato di output sarà il segno, l'elemento e la qualità separati da una virgola e uno spazio:
Sign, Element, Quality
Esempi
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 formato di input valido?