Tulis program yang mencatat tanggal lahir (bulan dan hari-bulan) sebagai input dan output tanda, elemen, dan kualitas zodiak barat yang sesuai . Untuk keperluan tantangan ini, ini didefinisikan persis seperti pada tabel di halaman wikipedia tertaut:
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
Aturan
- Tanda, elemen, dan kualitas akan dihitung dari tanggal input persis sesuai dengan tabel wikipedia.
- Saya memberikan beberapa kebebasan atas format tanggal input (lihat bagian Input di bawah). Anda harus menyatakan dengan jelas dalam jawaban Anda format apa yang Anda gunakan.
- Jika tanggal yang tidak valid diberikan (tanggal yang tidak dapat diparsing, atau bulan atau hari di luar jangkauan), program akan keluar dengan pesan tersebut
Invalid date
. - Program harus benar menangani tahun kabisat. yaitu jika 29 Februari adalah input, maka output harus benar
Pisces, Water, Mutable
. - Pustaka Tanggal / API Tanggal bahasa Anda diizinkan, tetapi API apa pun yang secara spesifik menghitung tanda-tanda zodiak dilarang.
- Standar “celah” yang tidak lagi lucu
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Memasukkan
- Program dapat membaca tanggal input dari STDIN, baris perintah, variabel lingkungan atau metode apa pun yang sesuai untuk bahasa pilihan Anda.
- Ini bukan terutama latihan dalam penguraian data, sehingga string input dapat diberikan dalam format apa pun yang Anda pilih, asalkan itu hanya terdiri dari komponen bulan dan hari-bulan, dan bukan nilai-nilai lain (seperti tahun atau waktu) . Misalnya
Jul 24
atau24th of July
atau7/24
atau24/07
format apa pun yang nyaman. Jika input yang tidak sesuai dengan pilihan Anda dari format input dimasukkan, makaInvalid date
kesalahan harus dibuang.
Keluaran
- Program akan menampilkan ke STDOUT, kotak dialog atau metode tampilan apa pun yang sesuai untuk bahasa pilihan Anda.
- Format output akan menjadi tanda, elemen dan kualitas yang dipisahkan oleh koma dan spasi:
Sign, Element, Quality
Contohnya
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
) Format input yang valid?