生年月日(月と日)を入力として、対応する記号、要素、西部星座の質を出力するプログラムを作成します。この課題のために、これらはリンクされたウィキペディアのページの表とまったく同じように定義されています。
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
。 - プログラムはうるう年を正しく処理する必要があります。すなわち、2月29日が入力である場合、出力はでなければなりません
Pisces, Water, Mutable
。 - あなたの言語の日付ライブラリ/ APIは許可されていますが、黄道帯の兆候を明確に計算するAPIは禁止されています。
- もはや面白くない標準の「抜け穴」
- これはcode-golfであるため、バイト単位の最短回答が優先されます。
入力
- プログラムは、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
)有効な入力形式?