当前位置:首页 > JavaScript

js 实现干支

2026-04-06 23:37:43JavaScript

js 实现干支

js 实现干支

干支纪年简介

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

实现逻辑

  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实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…