Skip to content

Instantly share code, notes, and snippets.

@vyach-vasiliev
Last active July 27, 2017 15:02
Show Gist options
  • Save vyach-vasiliev/175758c7633fda9587f9dabf850507c0 to your computer and use it in GitHub Desktop.
Save vyach-vasiliev/175758c7633fda9587f9dabf850507c0 to your computer and use it in GitHub Desktop.
Get Zodiac sign by month and day by Javascript

Get Zodiac sign by Javascript

A quick way to get a zodiac sign by date using a very small function.

There are three options

With English names

/**
 * Return zodiac sign name by month and day
 *
 * @param day
 * @param month
 * @return {string} name of zodiac sign
 */
function getZodiacName(day, month) {
    var zodiac = ['', 'Capricorn', 'Aquarius', 'Pisces', 'Aries', 'Taurus', 'Gemini', 'Cancer', 'Leo', 'Virgo', 'Libra', 'Scorpio', 'Sagittarius', 'Capricorn'];
    var last_day = ['', 19, 18, 20, 20, 21, 21, 22, 22, 21, 22, 21, 20, 19];
    return (day > last_day[month]) ? zodiac[month*1 + 1] : zodiac[month];
}

Use this way

// 15 - October
getZodiacSign(15, 10); // Out: "Libra"

With multilingual options

Current codes set in ISO 3166-1 alpha-2 format.

/**
 * Return zodiac sign name by month and day
 *
 * @param day
 * @param month
 * @param lang
 * @return {string} name of zodiac sign
 */
function getZodiacNameLang(day, month, lang) {
    var zodiac_lang = {
        'en': ['', 'Capricorn', 'Aquarius', 'Pisces', 'Aries', 'Taurus', 'Gemini', 'Cancer', 'Leo', 'Virgo', 'Libra', 'Scorpio', 'Sagittarius', 'Capricorn'],           // English
        'fr': ['', 'Capricorne', 'Verseau', 'Poissons', 'Bélier', 'Taureau', 'Gémeaux', 'Cancer', 'Léo', 'Vierge', 'Balance', 'Scorpion', 'Sagittaire', 'Capricorne'],  // French
        'de': ['', 'Steinbock', 'Fische', 'Widder', 'Stier', 'Zwillinge', 'Krebs', 'Löwe', 'Jungfrau', 'Waage', 'Skorpion', 'Schütze', 'Steinbock'],                    // German
        'cz': ['', 'Kozoroh', 'Vodnář', 'Pisce', 'Beran', 'Taurus', 'Gemini', 'Rak', 'Leo', 'Virgo', 'Libra', 'Scorpio', 'Střelec'],                                    // Czech
        'ru': ['', 'Козерог', 'Водолей', 'Рыбы', 'Овен', 'Телец', 'Близнецы', 'Рак', 'Лев', 'Дева', 'Весы', 'Скорпион', 'Стрелец', 'Козерог'],                          // Russian
        'ua': ['', 'Козерог', 'Водолій', 'Риби', 'Овен', 'Телець', 'Близнюки', 'Рак', 'Лев', 'Діва', 'Терези', 'Скорпіон', 'Стрілець', 'Козерог'],                      // Ukrainian
        'kz': ['', 'Козерог', 'Аққу', 'Балықтар', 'Қоян', 'Тауыр', 'егіздердің', 'Рагы', 'Лев', 'Бикеш', 'Тараз', 'Скорпион', 'Стрелец', 'Козерог'],                    // Kazakh
    };
    var zodiac = zodiac_lang[lang] ? zodiac_lang[lang] : zodiac_lang['en'];
    var last_day = ['', 19, 18, 20, 20, 21, 21, 22, 22, 21, 22, 21, 20, 19];
    return (day > last_day[month]) ? zodiac[month*1 + 1] : zodiac[month];
}

Use this way

// 15 - October
getZodiacSignLang(15, 10); // Out: "Libra". English by default
getZodiacSignLang(15, 10, 'blabla'); // Out: "Libra". English by default
getZodiacSignLang(15, 10, 'fr'); // Out: "Balance"

And if you need an image as a string character

/**
 * Return zodiac sign by month and day
 *
 * @param day
 * @param month
 * @return {string} name of zodiac sign
 */
function getZodiacSign(day, month) {
    var zodiac = ['', '♈', '♉', '♊', '♋', '♌', '♍', '♎', '♏', '♐', '♑', '♒', '♓', '♈'];
    var last_day = ['', 19, 18, 20, 20, 21, 21, 22, 22, 21, 22, 21, 20, 19];
    return (day > last_day[month]) ? zodiac[month*1 + 1] : zodiac[month];
}

Use this way

// 15 - October
getZodiacSign(15, 10); // Out: "♎"

Add to favorites, not to lose! If you want to add a language, just fork it. Thank you for your interest! 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment