1. 求星期公式
星期=[5+A(实际天数)] mod 7

2. 干支计算公式
六十甲子干支序号,从1->59->0。
六十甲子干支序号=[23+A(实际天数)] mod 60

3. 二十八宿计算公式
二十八宿序号=[23+A(实际天数)] mod 28

4. 实际天数A的计算
A=B(基本天数)+C(闰日天数)
B=(计算年-1)*365+(要计算到年的月日天数)
例:1984年2月1日的基本天数B=(1984-1)*365+(31+1)=723827(天),
其中,31是1月为31天,1为2月1日为1天。
公元308年8月28日的基本天数
B=(308-1)*365+(31+28+31+30+31+30+31+27)=112055+239=112294(天)
这里的(要计算到年的月日天数),用的是公历,月日天数的规则我好
象小学就学过了。哈哈……

C=(计算年-1) div 4 -误差修正值 + fixValue2
fixValue2为0或者1。常值为0,当年数为闰年(公历闰年法)之中的3月
1日之后的为1。

误差修正值推算:
公元元年1月1日至1582年10月14日为0。
1582年10月15日至1699年12月31日为10。
从1701年1月1日起每增加一个世纪累加1,但能被400除尽的世纪不累
加1。此方法推算即可。
--有一个问题,1700年这一年的修正值应为多少呢?算法中正好没有
讲到,但看来应该是10。

例1701年1月1日起误差值为11,而1801年1月1日起误差修正值为12,
而1901年1月1日起误差修正值为13,
但2001年误差修正值仍为13,因为2000年能被400整除,故不累加。而
2101年1月1日起误差修正值为14。

5. 实例:1998.3.15的星期、干支与二十八宿
B=(1998-1)*365+(31+28+15)=728979
C=(1998-1) div 4 - 13 + 0 = 486
A=B+C=728979+486=729465
星期序号=(5+729465) mod 7=0,即为星期日
干支序号=(13+729465) mod 60=58,即为辛酉
二十八宿序号=(23+729465) mod 28=4,即为房

1.  干支记年

1  2   3   4  5   6  7   8  9  10
   甲子 乙丑 丙寅 丁卯 戊辰 己巳 庚午 辛未 壬申 癸酉
    11  12 13   14  15  16  17  18  19  20
   甲戌 乙亥 丙子 丁丑 戊寅 己卯 庚辰 辛己 壬午 癸未
    21  22  23  24  25  26  27  28  29  30
   甲申 乙酉 丙戌 丁亥 戊子 己丑 庚寅 辛卯 壬辰 癸巳
    31  32  33  34  35  36  37  38  39  40
   甲午 乙未 丙申 丁酉 戊戌 己亥 庚子 辛丑 壬寅 癸卯
    41  42  43  44  45  46  47  48  49  50
   甲辰 乙巳 丙午 丁未 戊申 己酉 庚戌 辛亥 壬子 癸丑
    51  52  53  54  55  56  57  58  59  60
   甲寅 乙卯 丙辰 丁巳 戊午 己未 庚申 辛酉 壬戌 癸亥

公元后:年份(y)计算方式 :((y%60)-4+60)%60

公元前: 年份(y)计算方式:  (57-y%60+60)%60

2.干支记月

年 份 一月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 十二月
甲、巳 丙寅 丁卯 戊辰 己巳 庚午 辛未 壬申 癸酉 甲戌 乙亥 丙子 丁丑
乙、庚 戊寅 己卯 庚辰 辛巳 壬午 癸未 甲申 乙酉 丙戌 丁亥 戊子 己丑
丙、辛 庚寅 辛卯 壬辰 癸巳 甲午 乙未 丙申 丁酉 戊戌 己亥 庚子 辛丑
丁、壬 壬寅 癸卯 甲辰 乙巳 丙午 丁未 戊申 己酉 庚戌 辛亥 壬子 癸丑
戊、癸 甲寅 乙卯 丙辰 丁巳 戊午 己未 庚申 辛酉 壬戌 癸亥 甲子 乙丑

注:干支与阳历一样都是以地球公转周期计算的,阴历最好转为阳历再计算,干支的月份是以二十四节气为起始,和阴历阳历的月份都没有直接关系

3.干支记日

G = 4C + [C / 4] + 5y + [y / 4] + [3 * (M + 1) / 5] + d - 3
Z = 8C + [C / 4] + 5y + [y / 4] + [3 * (M + 1) / 5] + d + 7 + i

  其中 C 是世纪数减一,y 是年份后两位,M 是月份,d 是日数。1月和2月按上一年的13月和14月来算。奇数月i=0,偶数月i=6。G 除以10的余数是天干,Z 除以12的余数是地支。
  计算时带[ ]的数表示取整。

星期、干支、二十八宿计算公式相关推荐

  1. C语言根据日期计算星期——基姆拉尔森计算公式

    公式 基姆拉尔森计算公式 w = ( day + 2month +3(month+1)/5 + year + year/4 - year/100 +year/400)%7 根据已知公元1年1月1日星期 ...

  2. 天干地支计算公式_日干支公式速算法,根据阴历或阳历推算日干天干地支方法...

    欲求日干支,必须要记得某年元旦那天的干支,以后再用公式推算.日干支的推算比较繁琐,只有以阳历来推算.因阳历每月的月大月小是固定的,在阳历每4年有一次闰二月,因此用阳历推算比较方便.用公历推算日干支,首 ...

  3. 五运六气计算java代码_破译干支历法和五运六气

    开门见山 一:历法解释 适用于五运六气.十月历.十二月历以及干支合历的基本条件: 1:连续纪日. 2:连续纪年. 3:采用回归制和以太阳为参考点的相对位置. 4:每360天换算一个年干支. 5:节气另 ...

  4. 《程序设计基础综合实践》各备选题目[2023-02-13]

    <程序设计基础综合实践>各备选题目[2023-02-13] <程序设计基础综合实践>各备选题目设计参考提示 一.总体要求 1.注释要求 注释是程序员与日后的程序读者之间通信的重 ...

  5. c语言风景日历制作系统,初学,C语言日历制作

    VC编译实现万年历的输出 具体功能:输入任意年份,输出日历(主要是对其星期的排列问题). 主要算法:基姆拉尔森计算公式(计算任意日期的星期 ) W= (d+2*m+3*(m+1)/5+y+y/4-y/ ...

  6. UNIX时间和夏令时计算

    UNIX时间和夏令时 工作笔记 工作笔记 UTC和GMT gmt和utc都是标准时间.  GMT是比较古老的时间较量标准,根据地球公转自转计算时间.UTC则是根据原子钟来计算时间,现在基本都用UTC时 ...

  7. C语言根据日期(年,月,日)判断星期几(使用基姆拉尔森计算公式)

    C语言根据日期判断星期几(使用基姆拉尔森计算公式) 算法如下:  基姆拉尔森计算公式 W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7 在公式中d表示日期中的日 ...

  8. 算法设计——基姆拉尔森计算公式:计算几月几号是星期几

    基姆拉尔森计算公式 W=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7 其中,W表示算出的星期的数字表示:0:星期日:1:星期一-- d表示日期,m表示月份,y表示年份 ...

  9. java 从已知日期计算干支纪日_天干地支纪日纪时计算公式

    年:每个干支为一年,六十个干后,又从头算起,周而复始,循环不息.由甲子开始,满六十年称做一甲子或一花甲子.称为干支纪年法. 月:正月是由寅开始,每个月的地支固定不变,然后依次与天干组合:由第一年的正月 ...

最新文章

  1. 耐能团队论文登上《自然·电子学》:集成忆阻器与CMOS以实现更好的AI
  2. 使用android frame动画定义自己的ProgressBar
  3. linux下多个db2,Linux下安装多个DB2副本
  4. java 注册驱动失败_java – JDBC驱动程序注册死锁?
  5. 【转】ABP源码分析四十二:ZERO的身份认证
  6. java中后退键_java - 单击后退按钮两次以退出活动
  7. MySQL Spatial Data Types
  8. Python的DoS拒绝服务之TCP/SYN洪水攻击
  9. 如何运行网页html,如何在网页中运行html代码
  10. [Java] 蓝桥杯ALGO-152 算法训练 8-2求完数
  11. bzoj 3680: 吊打XXX
  12. linux php-cli,php cli - shell语言的扩展利器 - Linux进阶, PHP技术 - freemouse-笔记-感悟-成长...
  13. 利用随机矩阵理论(random matrix theory)确定微生物网络构建阈值
  14. Linux-常用软件源整理
  15. 64K方法数限制原理与解决方案总结
  16. 磁盘占用率100%——哪些程序可以禁用(详细版)【还讲到独立显卡、集成显卡、双显卡、固态硬盘卡机卡死卡顿解决】
  17. 【Android 进阶】开发APP常见的错误
  18. 推荐几个高质量的程序员 B 站视频账号
  19. hdu 5873 Football Games 模拟、兰道定理Landau's Theorem
  20. SCEF引入需求分析及部署应用【转】

热门文章

  1. 基于springboot的电影院会员管理系统
  2. 盘点 | 2022年上半年国内的电邮安全事件
  3. 70块钱打造简单家庭NAS
  4. 3DMARK 06超频后成绩上万
  5. 域名管理百科:如何进行whois域名查询?(中科三方)
  6. 很真实的语音转文字,微软厉害
  7. 光学识别OCR软件Readiris Pro 17 for Mac
  8. 服务的定义,使用和绑定(FileManagerService)
  9. 【Leetcode】111. 二叉树的最小深度
  10. c语言从键盘输入一个整数判断是否为素数,键盘输入一个正整数,程式设计判断其是否为素数(即质数)...