当前位置:首页 > JavaScript

js 实现干支

2026-02-02 06:20:49JavaScript

干支纪年计算方法

干支纪年由天干(10个)和地支(12个)组成,60年一个循环。天干地支的组合顺序固定,已知某一年的干支,可推算其他年份。

天干序列:甲、乙、丙、丁、戊、己、庚、辛、壬、癸
地支序列:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥

实现步骤

确定一个基准年份,如2020年为庚子年。计算目标年份与基准年份的差值,用天干地支的总数取模得到索引。

天干计算:(year - baseYear) % 10
地支计算:(year - baseYear) % 12
结果需处理负数的模运算。

JavaScript 实现代码

function getGanzhiYear(year) {
  const BASE_YEAR = 2020; // 基准年份:庚子年
  const tiangan = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸'];
  const dizhi = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥'];

  // 处理模运算的负数情况
  const mod = (n, m) => ((n % m) + m) % m;

  const diff = year - BASE_YEAR;
  const tgIndex = mod(diff, 10);
  const dzIndex = mod(diff, 12);

  return tiangan[tgIndex] + dizhi[dzIndex];
}

// 示例用法
console.log(getGanzhiYear(2023)); // 输出:癸卯
console.log(getGanzhiYear(2000)); // 输出:庚辰

扩展说明

该方法适用于公元后的年份计算。如需支持公元前年份,需调整基准年份和模运算逻辑。干支纪月、纪日逻辑类似,但基准点不同。

js 实现干支

对于更复杂的农历日期计算,建议使用现成的库如lunar.jschinese-lunar,它们已处理节气、闰月等规则。

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

相关文章

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。 &…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <…