当前位置:首页 > 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实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Par…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…