当前位置:首页 > JavaScript

js 实现干支

2026-04-06 23:37:43JavaScript

干支纪年简介

干支纪年是中国传统的纪年方式,由“天干”(甲、乙、丙、丁、戊、己、庚、辛、壬、癸)和“地支”(子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥)组合而成,共60年一个循环(称为一个甲子)。

js 实现干支

实现逻辑

  1. 天干地支顺序:天干10个,地支12个,按固定顺序组合。
  2. 基准年份:以已知的干支年份为基准(如2024年是甲辰年),推算其他年份。
  3. 数学计算:通过年份与基准的差值取模,得到天干和地支的索引。

代码实现

function getChineseEraYear(year) {
    // 天干和地支数组(顺序固定)
    const heavenlyStems = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸'];
    const earthlyBranches = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥'];

    // 基准年份:2024年是甲辰年(索引0和4)
    const baseYear = 2024;
    const baseStemIndex = 0; // 甲
    const baseBranchIndex = 4; // 辰

    // 计算差值取模
    const diff = year - baseYear;
    const stemIndex = (baseStemIndex + diff) % 10;
    const branchIndex = (baseBranchIndex + diff) % 12;

    // 处理负数情况(如year < baseYear)
    const adjustedStemIndex = stemIndex >= 0 ? stemIndex : stemIndex + 10;
    const adjustedBranchIndex = branchIndex >= 0 ? branchIndex : branchIndex + 12;

    return heavenlyStems[adjustedStemIndex] + earthlyBranches[adjustedBranchIndex];
}

// 示例
console.log(getChineseEraYear(2024)); // 甲辰
console.log(getChineseEraYear(2000)); // 庚辰
console.log(getChineseEraYear(1990)); // 庚午

注意事项

  • 基准调整:若需更早的年份,可调整基准年份(如1984年是甲子年)。
  • 农历年份:实际干支年以农历春节为分界,此代码未处理农历日期,仅按公历年份近似计算。
  • 负数处理:通过取模后调整索引,确保结果正确。

扩展应用

  • 结合农历库(如lunar-js)可实现精确的干支年转换。
  • 添加生肖逻辑:地支对应生肖(如子鼠、丑牛)。

标签: 干支js
分享给朋友:

相关文章

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…