用js实现六十甲子
六十甲子的实现方法
六十甲子是中国传统的干支纪年法,由天干(10个)和地支(12个)组合而成,共60种组合。以下是使用JavaScript实现六十甲子的方法:
定义天干和地支数组
const heavenlyStems = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸'];
const earthlyBranches = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥'];
生成六十甲子数组
function generateSexagenaryCycle() {
const cycle = [];
for (let i = 0; i < 60; i++) {
const stemIndex = i % 10;
const branchIndex = i % 12;
cycle.push(heavenlyStems[stemIndex] + earthlyBranches[branchIndex]);
}
return cycle;
}
根据年份获取对应的六十甲子
function getSexagenaryYear(year) {
// 1984年是甲子年,作为基准点
const baseYear = 1984;
const offset = (year - baseYear) % 60;
// 处理负数情况
const index = offset >= 0 ? offset : 60 + offset;
return generateSexagenaryCycle()[index];
}
使用示例
const sexagenaryCycle = generateSexagenaryCycle();
console.log(sexagenaryCycle); // 输出完整的六十甲子数组
console.log(getSexagenaryYear(2023)); // 输出2023年对应的干支:癸卯
console.log(getSexagenaryYear(2000)); // 输出2000年对应的干支:庚辰
实现原理说明
天干有10个,地支有12个,它们的最小公倍数是60,因此每60年循环一次。1984年是甲子年,作为基准点,其他年份通过与1984年的差值计算对应的干支。
这种方法可以方便地获取任意年份的干支,也可以生成完整的六十甲子列表。可以根据需要扩展功能,如获取月份或日期的干支。







