Chinese Zodiac Compatibility Calculator
Discover the compatibility between your Chinese zodiac sign and your partner's! The Chinese zodiac, or Sheng Xiao, is a repeating cycle of 12 years, with each year represented by an animal and its reputed attributes. These animals are Rat, Ox, Tiger, Rabbit, Dragon, Snake, Horse, Goat, Monkey, Rooster, Dog, and Pig.
Compatibility in Chinese astrology is often determined by the relationships between these animal signs, particularly focusing on "trines" (allies), "clashes" (opposites), and other harmonious or challenging connections. While this calculator provides a general overview, remember that personal relationships are complex and influenced by many factors beyond zodiac signs.
Understanding Chinese Zodiac Compatibility
The 12 Chinese zodiac animals are grouped into four "trines" or "allies" groups, where animals within the same group are believed to have excellent compatibility due to shared characteristics and understanding:
- First Trine: Rat, Dragon, Monkey (Intellectuals, charismatic, leaders)
- Second Trine: Ox, Snake, Rooster (Diligent, philosophical, persistent)
- Third Trine: Tiger, Horse, Dog (Independent, idealistic, adventurous)
- Fourth Trine: Rabbit, Goat, Pig (Diplomatic, compassionate, artistic)
Conversely, certain signs are considered "clashes" or "opposites," often being six years apart in the cycle. These pairings may face more challenges and require greater effort to maintain harmony:
- Rat vs. Horse
- Ox vs. Goat
- Tiger vs. Monkey
- Rabbit vs. Rooster
- Dragon vs. Dog
- Snake vs. Pig
Beyond these major groupings, there are also "secret friends" and other nuanced relationships that contribute to the overall compatibility. This calculator simplifies these interactions to give you a quick insight into your potential zodiac harmony.
Please note: This calculator is for entertainment purposes only and should not be taken as definitive relationship advice.
function getZodiacSign(year) {
var animals = ["Rat", "Ox", "Tiger", "Rabbit", "Dragon", "Snake", "Horse", "Goat", "Monkey", "Rooster", "Dog", "Pig"];
// The Chinese zodiac cycle starts with Rat for years like 1900, 1912, etc.
var offset = (year – 1900) % 12;
if (offset < 0) { // Handle years before 1900 correctly for modulo
offset += 12;
}
return animals[offset];
}
function getCompatibility(sign1, sign2) {
if (sign1 === sign2) {
return "Good (Same Sign)"; // Often good, but can be too similar
}
// Trines (Excellent)
var trines = [
["Rat", "Dragon", "Monkey"],
["Ox", "Snake", "Rooster"],
["Tiger", "Horse", "Dog"],
["Rabbit", "Goat", "Pig"]
];
for (var i = 0; i < trines.length; i++) {
var trineGroup = trines[i];
// Check if both signs are present in the current trine group
if (trineGroup.indexOf(sign1) !== -1 && trineGroup.indexOf(sign2) !== -1) {
return "Excellent (Allies)";
}
}
// Clashes (Challenging/Clash) – 6 years apart
var clashes = {
"Rat": "Horse", "Horse": "Rat",
"Ox": "Goat", "Goat": "Ox",
"Tiger": "Monkey", "Monkey": "Tiger",
"Rabbit": "Rooster", "Rooster": "Rabbit",
"Dragon": "Dog", "Dog": "Dragon",
"Snake": "Pig", "Pig": "Snake"
};
if (clashes[sign1] === sign2) {
return "Challenging (Clash)";
}
// Secret Friends (Good)
var secretFriends = {
"Rat": "Ox", "Ox": "Rat",
"Tiger": "Pig", "Pig": "Tiger",
"Rabbit": "Dog", "Dog": "Rabbit",
"Dragon": "Rooster", "Rooster": "Dragon",
"Snake": "Monkey", "Monkey": "Snake"
};
if (secretFriends[sign1] === sign2) {
return "Good (Secret Friends)";
}
// All others are Neutral
return "Neutral (Average)";
}
function calculateCompatibility() {
var yourYearInput = document.getElementById("yourBirthYear");
var partnerYearInput = document.getElementById("partnerBirthYear");
var resultDiv = document.getElementById("compatibilityResult");
var yourYear = parseInt(yourYearInput.value);
var partnerYear = parseInt(partnerYearInput.value);
if (isNaN(yourYear) || isNaN(partnerYear) || yourYear 2099 || partnerYear 2099) {
resultDiv.innerHTML = "Please enter valid birth years between 1900 and 2099.";
return;
}
var yourSign = getZodiacSign(yourYear);
var partnerSign = getZodiacSign(partnerYear);
var compatibility = getCompatibility(yourSign, partnerSign);
resultDiv.innerHTML = "You are a
" + yourSign + ". Your partner is a
" + partnerSign + ".";
resultDiv.innerHTML += "Their compatibility is:
" + compatibility + ".";
}