写一个程序,它出生日期(月和月某一天的)作为输入,并输出相应的符号,元件和质量西黄道。出于此挑战的目的,它们的定义与链接的维基百科页面中的表完全相同:
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
。 - 该程序必须正确处理leap年。即,如果输入2月29日,则输出必须正确为
Pisces, Water, Mutable
。 - 允许使用您的语言的日期库/ API,但禁止任何专门计算十二生肖的API。
- 标准的“漏洞”不再有趣
- 这是代码高尔夫球,因此最短的答案以字节为单位。
输入值
- 该程序可以从STDIN,命令行,环境变量或任何适合您选择的语言的方法中读取输入日期。
- 这主要不是日期字符串解析的练习,因此输入字符串可以以您选择的任何格式提供,只要它仅包含月和月中的日期部分,而不包含其他值(例如年或时间)即可。 。例如
Jul 24
or24th of July
或7/24
or24/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
)一个有效的输入格式?