Напишіть програму, яка приймає дату народження (місяць та день місяця) як вхід та виводить відповідний знак, елемент та якість західного зодіаку . Для цілей цього виклику вони визначені точно так, як у таблиці на пов'язаній сторінці Вікіпедії:
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
Правила
- Знак, елемент та якість будуть розраховані з дати введення точно відповідно до таблиці wikipedia.
- Я даю деяку свободу щодо формату дати введення (див. Розділ Введення нижче). Ви повинні чітко вказати у своїй відповіді, який формат ви використовуєте.
- Якщо вказана недійсна дата (непридатна дата, або місяць або день місяця поза діапазоном), програма вийде із повідомленням
Invalid date
. - Програма повинна правильно обробляти високосні роки. тобто, якщо 29 лютого є входом, то вихід повинен бути правильно
Pisces, Water, Mutable
. - Бібліотеки / API дати вашої мови дозволені, але будь-які 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
) правильний формат введення?