Напишите программу, которая принимает в качестве входных данных дату рождения (месяц и день месяца) и выводит соответствующий знак, элемент и качество западного зодиака . Для целей этой задачи они определены точно так же, как в таблице на связанной странице википедии:
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
правила
- Знак, элемент и качество будут рассчитываться по дате ввода точно в соответствии с таблицей википедии.
- Я даю некоторую свободу над входным форматом даты (см. Раздел « Ввод » ниже). Вы должны четко указать в своем ответе, какой формат вы используете.
- Если указана недопустимая дата (непарсируемая дата или месяц или день месяца вне диапазона), программа завершит работу с сообщением
Invalid date
. - Программа должна правильно обрабатывать високосные годы. то есть, если 29-е февраля является входом, то выход должен быть правильно
Pisces, Water, Mutable
. - Библиотеки / API-интерфейсы Date вашего языка разрешены, но любые API-интерфейсы, которые специально рассчитывают знаки зодиака, запрещены.
- Стандартные «лазейки», которые больше не смешны
- Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.
вход
- Программа может считывать введенную дату из STDIN, командной строки, переменных среды или любого другого метода, удобного для вашего языка.
- Это в первую очередь не упражнение при разборе даты-строки, поэтому входная строка может быть предоставлена в любом формате, который вы выберете, при условии, что она состоит только из компонентов месяца и дня месяца, а не других значений (таких как год или время) , Например,
Jul 24
или,24th of July
или,7/24
или24/07
любой другой удобный формат. Если введен ввод, не соответствующий выбранному вами формату ввода, тоInvalid date
должна быть выдана ошибка.
Выход
- Программа выведет на STDOUT, диалоговое окно или любой другой способ отображения, подходящий для вашего языка.
- Выходным форматом будет знак, элемент и качество, разделенные запятой и пробелом:
Sign, Element, Quality
Примеры
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
) допустимым форматом ввода?