当前位置: 首页 > news >正文

星期、干支、二十八宿计算公式

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的余数是地支。
  计算时带[ ]的数表示取整。

相关文章:

  • Tmux使用教程
  • 悄悄地我走了 著名的非自然死亡
  • 【ROS-Navigation】Movebase主体源码解读
  • 【ROS-Navigation】NavFn全局规划源码解读-1
  • 【ROS-Navigation】NavFn全局规划源码解读-2
  • 【ROS-Navigation】Base Local Planner局部规划-TrajectoryPlanner源码解读-1
  • SQLServer获取Excel中所有Sheet
  • 【ROS-Navigation】Base Local Planner局部规划-TrajectoryPlanner源码解读-2
  • 朋友没戏,围脖有戏
  • 【ROS-Navigation】Base Local Planner局部规划-TrajectoryPlanner源码解读-3
  • ArcGIS Server Java ADF 案例教程 36
  • 【ROS-Navigation】Costmap2D代价地图源码解读-1
  • 【ROS-Navigation】Costmap2D代价地图源码解读-2
  • ArcGIS Server Java ADF 案例教程 37
  • 【ROS-Navigation】Costmap2D代价地图源码解读-静态层StaticLayer
  • [nginx文档翻译系列] 控制nginx
  • [Vue CLI 3] 配置解析之 css.extract
  • 【前端学习】-粗谈选择器
  • Android优雅地处理按钮重复点击
  • Druid 在有赞的实践
  • Fastjson的基本使用方法大全
  • iOS 颜色设置看我就够了
  • JDK 6和JDK 7中的substring()方法
  • Netty 4.1 源代码学习:线程模型
  • Octave 入门
  • React-redux的原理以及使用
  • SQLServer之索引简介
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 一个JAVA程序员成长之路分享
  • 一个完整Java Web项目背后的密码
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #NOIP 2014#Day.2 T3 解方程
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • $ git push -u origin master 推送到远程库出错
  • (¥1011)-(一千零一拾一元整)输出
  • (备忘)Java Map 遍历
  • (第30天)二叉树阶段总结
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (三) diretfbrc详解
  • (十八)SpringBoot之发送QQ邮件
  • (一)SpringBoot3---尚硅谷总结
  • (转)JAVA中的堆栈
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .Net 8.0 新的变化
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .net core 使用js,.net core 使用javascript,在.net core项目中怎么使用javascript
  • .Net 垃圾回收机制原理(二)
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • @Async注解的坑,小心