HarmonyOS应用《玄象》开发实战:大运排定:阳男阴女顺行、阴男阳女逆行的方向计算
阅读时长:约 19 分钟 | 难度:★★★★★ | 篇章:第 6 篇 · 命理八字模块 对应源码:
entry/src/main/ets/pages/mingli/MingliAnalysisPage.ets
前言
大运是八字命理中“十年一运“的运势周期。玄象项目通过大运排定算法,根据用户的性别与年干阴阳属性,确定大运的顺行/逆行方向,并计算每步大运的起止年份。本篇将深入剖析玄象项目大运排定算法的实现:从阳年/阴年判定、顺行/逆行规则、大运干支推算,到起运年龄计算。掌握这套大运排定算法,您就能在 HarmonyOS 应用中实现完整的八字运程分析。
提示:大运排定的核心规则是“阳男阴女顺行,阴男阳女逆行“。
一、大运方向判定
1.1 顺逆规则
private getDayunDirection(year: number, gender: string): 'forward' | 'backward' { const stemIndex = (year - 4) % 10; const isYangYear = stemIndex % 2 === 0; // 甲丙戊庚壬为阳年 if ((isYangYear && gender === '男') || (!isYangYear && gender === '女')) { return 'forward'; // 阳男阴女顺行 } return 'backward'; // 阴男阳女逆行 }二、大运干支推算
2.1 月柱顺逆行
private getDayunGanzhi(monthGanZhi: string, direction: 'forward' | 'backward', step: number): string { const stemIndex = HeavenlyStems.STEMS.indexOf(monthGanZhi[0]); const branchIndex = HeavenlyStems.BRANCHES.indexOf(monthGanZhi[1]); const offset = direction === 'forward' ? step : -step; return HeavenlyStems.STEMS[(stemIndex + offset + 10) % 10] + HeavenlyStems.BRANCHES[(branchIndex + offset + 12) % 12]; }三、大运排定算法设计总结
3.1 数据流
八字排盘 ↓ 性别 + 年干阴阳 ↓ 大运方向(顺行/逆行) ↓ 月柱 + 步数 ↓ 大运干支序列 ↓ UI 展示(10 年一大运)总结
本篇以玄象项目大运排定算法为蓝本,深入剖析了 ArkTS 大运排定的实现:从阳年/阴年判定、顺行/逆行规则、大运干支推算,到起运年龄计算。掌握这套大运排定算法,您就能在 HarmonyOS 应用中实现完整的八字运程分析。
如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!
相关资源:
- 大运:wikipedia.org/wiki/大运
- 开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net
