注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

蜗牛壳

本博是小子的学习笔记,欢迎指正和转载!

 
 
 

日志

 
 
关于我

简单生活,平安走过! 在黑暗的夜空中指认繁星, 于浩渺的网络上寻找辩友!

网易考拉推荐

如何使用EXCEL计算生辰八字  

2010-07-11 13:38:06|  分类: 火星车 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

  “生辰八字”是古人用于记录出生日期及时间的一种方法,常用于算命等活动,其是否准确小子无力评判,现给出一种由公历及农历出生日期使用EXCEL推算生辰八字的方法,供各位参考。

  “生辰八字”的基础是我国古代的干支纪法,就是把“甲乙丙丁戊己庚辛壬癸”十个天干符号与“子丑寅卯辰巳午未申酉戌亥”十二个地支符号按顺序循环搭配组成60个干支编号,比如“甲子、乙丑、丙寅、丁卯 ... 癸亥”,俗称“六十花甲”。由于天干比地支少两个,所以在组合中只会出现奇数对奇数、偶数对偶数的现象,这在阴阳学上就称为“阳配阳、阴配阴”(奇数为阳、偶数为阴)。干支纪法就是使用这60个编号来记录年、月、日、时,每一组都单独循环使用,周而复始。人出生时的年、月、日、时4组信息,也就4个干支编号共8个字就是所谓的“生辰八字”,说白了就是出生时间。下面让我们看看如何使用EXCEL来简便地计算生辰八字。

  计算原理:为年、月、日、时分别找到一个起点,也就是干支纪法的第1个编号“甲子”,由于60个干支编号是循环使用的,只要算出其他时点与起点的差值,把差值除以60取其余数即可得到干支编号。

  第一步:创建一张EXCEL表,表名取“干支”,把60个干支编号按顺序放到表中以备查用(如下图)。

如何使用EXCEL计算生辰八字 - 秋天的麦兜 - 蜗牛壳 

  第二步:在同一EXCEL文件创建新表,表名取“计算结果”,并在此表中输入您的出生时间等相关信息,包括公历及农历(注:农历日期可由公历日期推算得出,但算法较为复杂,此处省略)。如图所示,在B2单元格输入公历出生日期,C2单元格输入出生时间,B3到B5单元格则分别输入农历出生日期,B2单元格以备显示计算结果。这里我们以公历1971年11月22日(农历十月初五)晚10点这一时刻为例来分步计算。

如何使用EXCEL计算生辰八字 - 秋天的麦兜 - 蜗牛壳

  第三步:计算干支纪年,在同一EXCEL文件创建新表,表名取“年”,内容如下图所示。

如何使用EXCEL计算生辰八字 - 秋天的麦兜 - 蜗牛壳

  其中,B2单元格的1984是查阅日历所得,这是距今最近的一个“甲子年”,B3单元格是出生年份,使用公式 =计算结果!B3 直接引用已经输入的农历出生年,B4单元格计算所得,公式为 =MOD((B3-B2),60) ,其值为两个年份差除以60所得的余数,即我们所求的干支序号,此例为47,查阅上述“干支”表第4行第7列即可得1971年的干支纪年“辛亥”,把查表过程转换成计算公式 =INDIRECT(ADDRESS(INT(B4/10)+2,MOD(B4,10)+2,1,1,"干支")) 输入到B5单元格,就完成了干支纪年的计算过程。

  第四步:计算干支纪月,在同一EXCEL文件创建新表,表名取“月”,内容如下图所示。

如何使用EXCEL计算生辰八字 - 秋天的麦兜 - 蜗牛壳

  其中,B2及B3单元格的农历1983年11月是一个“甲子月”,这个数值由以下方法推算而来。
  农历1年12个月(不算闰月),60个干支编号5年一循环,因为地支符号也是12个,与12个月刚好搭配,也就是各月的的地支固定不变(以冬至所在的11月为起点,即记为子月)。至于月的天干,因为是5年一循环,所以与年的天干有固定的对照关系,即年天干为“甲”时,甲月为9月;年天干为“乙”时,甲月上推两月为7月(因10个天干符号比12个月少2个),如此类推可得,年天干为“戊”或“癸”时“甲”恰在“子月”,即“甲子月”只会出现在年天干为“戊”或“癸”的年份。在第三步中我们已知1984年是甲子年,1983年就一定是癸亥年,天干正好是“癸”,因此可知1983年11月是“甲子月”。
  确定了甲子月,我们再把农历出生年月使用公式 =计算结果!B3 和 =计算结果!B4 分别引用到B3和C3单元格,在B4单元格输入公式 =MOD((B3-B2)*12+C3-C2,60) 计算两个月度差除以60的余数,得到农历1971年10月的干支序号为35,比照第四步,在B5单元格输入公式 =INDIRECT(ADDRESS(INT(B4/10)+2,MOD(B4,10)+2,1,1,"干支")) 查得该月为“己亥月”。

  注意:如果恰巧是农历闰月出生的,那就需要查到当月中某一24节气所在的那一天(闰月只有一个),这一天之前的日子其月天干等于上一月,之后的日子则等于下一月。另外,据有关专家部门解释,农历每月的干支并不固定,主要应由节气来定,导致月初几天一般算做上月干支,如果是年初还会有年干支的调整(比如2010年春节前十天出生的人就应该算属虎了,直到明年大年初二出生的人才算属兔)。小子实在不喜欢这种做法,这样干支纪月就失去月的意义啦,又或者说是我们农历的月度划分出了问题,所以本算法中把一个农历月记为同一干支(年更是如此,没有人会把自己的属相精确到如此地步来计),如果您不喜欢就只好去查万年历了(小子使用的是国家授时中心发布的日梭万年历)。

  第五步:计算干支纪日,在同一EXCEL文件创建新表,表名取“日”,内容如下图所示。

如何使用EXCEL计算生辰八字 - 秋天的麦兜 - 蜗牛壳

  日的干支是从鲁隐公三年(公元前722年)至今在史书上逐日记载的,按60个干支编号顺序使用,中间没有间隔。从公历日期也可以推算出日的干支,但公式较为复杂,此处省略。小子直接查阅历书得知公历1983年12月2日是一个甲子日,我们把它输入到B2单元格。B3单元格输入公式 =IF(HOUR(计算结果!C2)=23,计算结果!B2+1,计算结果!B2) 来计算公历出生日期,计算中还需要考虑时辰问题,我们知道1个时辰等于2小时,子时在昨日23时00分00秒至今日0时59分59秒,因此在计算干支纪日中,23时之后的1个小时应算作次日,即日期值加1,其他时间仍算作今日。在这里我们之所以改用公历来计算,是因为看中了EXCEL中的公历格式的日期值,可以直接使用加减法运算来计算两个日期之间的天数差及累进日期这个功能,B3单元格公式中的 计算结果!B2+1 就是对日期值直接加1得出下一天的日期值。相反,我们用B3与B2单元格的日期值相减就得到了两个日期之间的天数差,所以在B4单元格输入公式 =MOD((B3-B2),60) 就得出了公历1971年11月22日的干支序号为47,在B5单元格输入公式 =INDIRECT(ADDRESS(INT(B4/10)+2,MOD(B4,10)+2,1,1,"干支")) 查得该日为“辛亥日”。

  第六步:计算干支纪时,在同一EXCEL文件创建新表,表名取“时”,内容如下图所示。

如何使用EXCEL计算生辰八字 - 秋天的麦兜 - 蜗牛壳

  干支纪时类似于干支纪月,每天12个时辰60个干支编号5天一循环,“甲子时”在日天干为“甲”或“己”的“子时”,第五步中我们已经得出公历1983年12月2日为“甲子日”,此日子时即为“甲子时”,我们记为第0个时辰,把该日期及时辰分别输入到B2及C3单元格。在B3单元格输入公式 =IF(HOUR(计算结果!C2)=23,计算结果!B2+1,计算结果!B2) 考虑时辰问题计算出生日;C3单元格输入公式 =IF(HOUR(计算结果!C2)=23,0,INT((HOUR(计算结果!C2)+1)/2)) 由出生时间的小时数来推算时辰编号,例中的22时为11,即亥时。然后我们比照干支纪月算法在B4单元格输入公式 =MOD((B3-B2)*12+C3-C2,60) 计算时辰的干支序号,在B5单元格输入公式 =INDIRECT(ADDRESS(INT(B4/10)+2,MOD(B4,10)+2,1,1,"干支")) 查出公历1971年11月22日22时为“己亥时”。

  最后,我们把上述4个年、月、日、时的干支编号组合在一起放到“计算结果”表的B6单元格,公式为:=年!B5 & " " & 月!B5 & " " & 日!B5 & " " & 时!B5 ,得出如下结果:

如何使用EXCEL计算生辰八字 - 秋天的麦兜 - 蜗牛壳

  这是一个“亥年亥月亥日亥时”出生的“超级金猪”(关于何为金猪,请参见小子另一篇文章“金猪年的由来及具体年份”),其生辰八字为“辛亥己亥辛亥己亥”。至此,一个简易的生辰八字计算器就完成了。为检验其效果,我们再输入一个新的时刻:2010年7月11日13时38分(农历五月三十),这正是小子完成本文的时刻,计算结果为:

如何使用EXCEL计算生辰八字 - 秋天的麦兜 - 蜗牛壳

  也就是本文的生辰八字为:庚寅 壬午 壬戌 丁未。注:如果按日梭万年历则为癸未月,7月6日之前才是壬午月,这样月与地支间不就没有固定的搭配关系了?实在是令人讨厌,一点也不和谐!不喜欢,俺仍然用自己所算的结果如何使用EXCEL计算生辰八字 - 秋天的麦兜 - 蜗牛壳

注:由于EXCEL只能处理1900年之后的日期,本计算器对1900年之前的日期无效如何使用EXCEL计算生辰八字 - 秋天的麦兜 - 蜗牛壳

附:比较有意思的生辰八字
出生日期(公历) 出生时间 生辰八字
1994年10月15日 19:00:00 - 20:59:59 甲戌 甲戌 甲戌 甲戌
1989年5月9日 9:00:00 - 10:59:59 己巳 己巳 己巳 己巳
1983年12月1日 21:00:00 - 22:59:59 癸亥 癸亥 癸亥 癸亥
1980年6月16日 11:00:00 - 12:59:59 庚申 壬午 庚申 壬午 (猴年马月 猴日马时
1978年6月25日 11:00:00 - 12:59:59 戊午 戊午 戊午 戊午
1945年9月13日 17:00:00 - 18:59:59 乙酉 乙酉 乙酉 乙酉
表格设计:秋天的麦兜(2010年7月11日)

庚寅壬午壬戌丁未 于北京。

秋天的麦兜推荐阅读:
  评论这张
 
阅读(6415)| 评论(26)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017