ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 28344|回复: 78

[原创] 八字起大运

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2018-2-13 11:30 | 显示全部楼层 |阅读模式
     操作简单,输入性别、出生公历即可,一键 查询
     一个节气管一个月,对应10年大运,与网上流行的几种起大运方法不尽相同,以下是我的一家之言,
1、以出生时刻邻近的节气时刻(分顺、逆)为准绳,计算时间差(精确到分钟),公历12分钟对应 大运的1天。
2、再参照大运的一年等于 12月,一月等于30天,将时间差对应总天数 换算为起运周岁  “岁  个月 天”
3、最后从出生时刻邻近的节气 ,由起运周岁 推算交运日期,“岁”代表 干支甲子年,“个月” 代表节气月(具体查八字)。
     这一步没有采用公历日期 分别加 年 月 日的做法。

八字起大运.zip (42.22 KB, 下载次数: 926)

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-2-13 11:31 | 显示全部楼层
Private Sub CommandButton1_Click()
Dim A As Date, i As Integer, jy As Integer, jm As Integer
Rows("5:65535").ClearContents

T = Array("甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸")
Dz = Array("子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥")
'F = Array("小寒", "立春", "惊蛰", "清明", "立夏", "芒种", "小暑", "立秋", "白露", "寒露", "立冬", "大雪")
F = Array("小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑", "白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪", "冬至")

'四柱
A = Cells(1, 4).Value
Cells(3, 4).Value = sizhu(A)

'阴阳与顺逆
B = Left(sizhu(A), 1)
For i = 0 To 9
   If T(i) = B Then
      If i Mod 2 = 0 Then
         Cells(3, 2).Value = "阳年"
         If Cells(1, 2).Value = "男" Then Cells(4, 2).Value = "顺": Exit For
      Else
         Cells(3, 2).Value = "阴年"
         If Cells(1, 2).Value = "女" Then Cells(4, 2).Value = "顺": Exit For
      End If
      Cells(4, 2).Value = "逆": Exit For
   End If
Next

'寻找第一个节气

If A < getjq(year(A), 0) Then
   If Cells(4, 2).Value = "顺" Then
      jy = year(A): jm = 0
   ElseIf Cells(4, 2).Value = "逆" Then
      jy = year(A) - 1: jm = 22
   End If
ElseIf A >= getjq(year(A), 22) Then
   If Cells(4, 2).Value = "顺" Then
      jy = year(A) + 1: jm = 0
   ElseIf Cells(4, 2).Value = "逆" Then
      jy = year(A): jm = 22
   End If
Else
   For i = 0 To 20 Step 2
   If A >= getjq(year(A), i) And A < getjq(year(A), i + 2) Then
      If Cells(4, 2).Value = "顺" Then
         jy = year(A): jm = i + 2
      ElseIf Cells(4, 2).Value = "逆" Then
         jy = year(A): jm = i
      End If
      Exit For
   End If
   Next
End If

jy0 = jy: jm0 = jm

For i = 0 To 9
   If T(i) = Mid(sizhu(A), 6, 1) Then k1 = i: Exit For
Next
For i = 0 To 11
   If Dz(i) = Mid(sizhu(A), 7, 1) Then k2 = i: Exit For
Next

For i = 0 To 11

   If Cells(4, 2).Value = "顺" Then
      If k1 = 9 Then k1 = 0 Else k1 = k1 + 1
      If k2 = 11 Then k2 = 0 Else k2 = k2 + 1
      Cells(i + 5, 6).Value = T(k1) & Dz(k2)
      Cells(i + 5, 3).Value = F(jm)
      Cells(i + 5, 4).Value = getjq(jy, jm)
          d2 = DateDiff("n", A, Cells(i + 5, 4).Value)
          d2 = Int(d2 / 12)
         
          sk1 = Int(d2 / 360)
          sk2 = Int((d2 - 360 * Int(d2 / 360)) / 30)
          sk3 = d2 - 360 * Int(d2 / 360) - 30 * Int((d2 - 360 * Int(d2 / 360)) / 30) - DateDiff("d", A, Cells(5, 4).Value)
          If jm0 + sk2 * 2 >= 24 Then sk1 = sk1 + 1: sk2 = sk2 - 12
          Cells(i + 5, 7).Value = DateAdd("d", sk3, getjq(jy0 + sk1, jm0 + sk2 * 2))
          Cells(i + 5, 5).Value = Int(d2 / 360) & "岁 "
          Cells(i + 5, 5).Value = Cells(i + 5, 5).Value & Int((d2 - 360 * Int(d2 / 360)) / 30) & "个月 "
          Cells(i + 5, 5).Value = Cells(i + 5, 5).Value & d2 - 360 * Int(d2 / 360) - 30 * Int((d2 - 360 * Int(d2 / 360)) / 30) & "天"
      jm = jm + 2
      If jm = 24 Then jm = 0: jy = jy + 1
   ElseIf Cells(4, 2).Value = "逆" Then
      If k1 = 0 Then k1 = 9 Else k1 = k1 - 1
      If k2 = 0 Then k2 = 11 Else k2 = k2 - 1
      Cells(i + 5, 6).Value = T(k1) & Dz(k2)
      Cells(i + 5, 3).Value = F(jm)
      Cells(i + 5, 4).Value = getjq(jy, jm)
          d1 = DateDiff("n", Cells(i + 5, 4).Value, A)
          d1 = Int(d1 / 12)
         
          nk1 = Int(d1 / 360)
          nk2 = Int((d1 - 360 * Int(d1 / 360)) / 30)
          If jm0 + nk2 * 2 >= 24 Then nk1 = nk1 + 1: nk2 = nk2 - 12
          nk3 = d1 - 360 * Int(d1 / 360) - 30 * Int((d1 - 360 * Int(d1 / 360)) / 30) + DateDiff("d", Cells(5, 4).Value, A)
          Cells(i + 5, 7).Value = DateAdd("d", nk3, getjq(jy0 + nk1, jm0 + nk2 * 2))
          Cells(i + 5, 5).Value = Int(d1 / 360) & "岁 "
          Cells(i + 5, 5).Value = Cells(i + 5, 5).Value & Int((d1 - 360 * Int(d1 / 360)) / 30) & "个月 "
          Cells(i + 5, 5).Value = Cells(i + 5, 5).Value & d1 - 360 * Int(d1 / 360) - 30 * Int((d1 - 360 * Int(d1 / 360)) / 30) & "天"
      jm = jm - 2
      If jm = -2 Then jm = 22: jy = jy - 1
   End If
Next

End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-2-13 16:51 | 显示全部楼层
生肖是看农历,还是阳历?但农历也有两种算法:
1.以正月初一的子时(也就是除夕晚上11:00)为分界线,这是大家惯用的说法
2.以"立春"的子时(也就是立春前一日晚上11:00)为分界线

1.传统春节是指“立春”,已经流传了数千年,形成了中国传统文化不可分割的一部分!正月初一为“元旦”,民国元年(1912年)规定阳历1月1日为“春节”,由于民间反对,袁世凯采取了换位的办法,将阳历1月1日定名为“元旦”,正月初一定名为“春节”。
2.从“立春”到“立春”是基本规律的365天,而从“春节”到“春节”短时只有354天,长时则多达384天。
3.我国的黄历、以及传统的命理学、占卜学等民俗学,均以“立春”作为生肖计算的依据!
4.许多民俗学专家支持以“立春”计算生肖。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-2-14 09:46 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-2-14 10:29 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
zopey 发表于 2018-2-14 09:46
地支藏干表

你会算命?给你钱。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-2-14 11:33 | 显示全部楼层
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2018-2-18 08:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
提示: 作者被禁止或删除 内容自动屏蔽

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-2-18 12:29 | 显示全部楼层
baigangliao 发表于 2018-2-18 08:40
人一辈子有多少大运啊,大运意味着什么

比如 某人出生于 甲戌寒露月令,出生大运为 “甲戌” (管 出生至5岁 8个月 10天) ;
大运为“顺”时 ,起大运周岁 5岁 8个月 11天,则 一步大运为 “乙亥” (管 5岁 8个月 11天至15岁 7个月 4天);
以此类推。。。

个人理解:
除了出生时刻的大运,后面是 一步大运管十年左右(10年与一个节气月30天对应),某人有多少个大运就看 某人寿命了。
大运就是 一个干支“甲戌”、“乙亥”等,古人记录天体运行的符号。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-2-18 12:35 | 显示全部楼层
本帖最后由 zopey 于 2018-2-18 15:39 编辑

通过地支藏干对八字的 五行进行量化分析。
1、天干 等于 5
2、年、日、时 支=8
3、月 支=16
八字的 五行合计为
    5*4+8*3+16=60.
当日干对应 五行的 生助之和大于30,可视为日干"强";小于25,视为"弱".

八字分析.rar (22.12 KB, 下载次数: 741)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-2-27 16:25 | 显示全部楼层
本帖最后由 zopey 于 2018-2-28 10:08 编辑

一种尝试:
1、以月令旺衰为出发点,得出天干的强度值 1+0.2*(印、比),
2、地支强度 等于 所藏天干强度 乘以藏干天数 除以30天。
3、八字的五行相加,为最后得分。

五行分析.zip

19.62 KB, 下载次数: 460

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 17:42 , Processed in 0.042902 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表