Napisz program, który pobiera datę urodzenia (miesiąc i dzień miesiąca) jako dane wejściowe i wyświetla odpowiedni znak, element i jakość zachodniego zodiaku . Na potrzeby tego wyzwania są one zdefiniowane dokładnie tak, jak w tabeli na powiązanej stronie wikipedii:
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
Zasady
- Znak, element i jakość zostaną obliczone na podstawie daty wprowadzenia dokładnie zgodnie z tabelą wikipedia.
- Daję swobodę w zakresie formatu daty wejściowej (patrz sekcja Wprowadzanie poniżej). Musisz jasno określić w swojej odpowiedzi, jakiego formatu używasz.
- Jeśli podana zostanie niepoprawna data (data niepoprawna, miesiąc lub dzień poza zakresem), program zakończy działanie z komunikatem
Invalid date
. - Program musi poprawnie obsługiwać lata przestępne. tzn. jeśli 29 lutego jest wejściem, to wyjście musi być poprawnie
Pisces, Water, Mutable
. - Biblioteki / interfejsy API w Twoim języku są dozwolone, ale wszelkie interfejsy API, które specjalnie obliczają znaki zodiaku, są zakazane.
- Standardowe „luki”, które nie są już śmieszne
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Wejście
- Program może odczytać datę wejściową z STDIN, wiersza poleceń, zmiennych środowiskowych lub dowolnej innej metody dogodnej dla wybranego języka.
- Nie jest to przede wszystkim ćwiczenie w analizowaniu danych, dlatego ciąg wejściowy może być podany w dowolnym wybranym formacie, o ile składa się tylko ze składników miesiąca i dnia miesiąca, a nie z innych wartości (takich jak rok lub godzina) . Np
Jul 24
lub24th of July
lub7/24
lub24/07
lub cokolwiek format jest wygodny. Jeśli wprowadzono dane wejściowe niezgodne z wybranym formatem wejściowym,Invalid date
należy zgłosić błąd.
Wynik
- Program wyświetli STDOUT, okno dialogowe lub dowolną metodę wyświetlania dogodną dla wybranego języka.
- Format wyjściowy to znak, element i jakość oddzielone przecinkiem i spacją:
Sign, Element, Quality
Przykłady
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
) aktualny format wejściowy?