当前位置:首页 > 技术心得 > 正文内容

回历与公历换算

xjtudll13年前 (2013-07-03)技术心得58770

伊斯兰教历以希吉来为纪元,“希吉来”是阿拉伯语“迁移”一词的音译,系指公元622年9月24日穆罕默德率众由麦加迁往麦地那之事。为使公历纪年元旦与阿拉伯太阴历纪年(以月亮绕地球一周而又与太阳相会,为一个月)岁首相合,特定儒略历622年7月16日(公历622年7月19日,将月日都以单位年表示,这一天则为“公历622.547.9年”)为伊斯兰教历元年1月1日。

伊斯兰教历属于阴历,全年只12个朔望月,每月29日12时44分3秒。不增置闰月,约三年有一个闰日,闰年355日;平年354日。在中国,伊斯兰教历俗称为“回历”,回历的月份以见新月为月首。

公历历年的平均长度为365.2425日,而回历历年的平均长度为354.3667日,1回历年相当于0.970223公历年。相比公历,回历每年少11日,公历的32年相当于回历的33年左右。

任何一年回历的元旦所对应的公历日期,可用下式求得:

公历日期=0.970223×(回历纪年-1)+ 622.5479

所得整数即为该年的公历纪年,以小数乘以公历年长365.2425日,再将所得日数化成该公历年的月日,便可得该回历年元旦所对应的公历日期。

例如,据此公式计算出:

① 回历1407年元旦,对应公历1986年9月6日;

② 求回历1420年5月10日所对应的公历日期,首先算出回历1420年元旦是公历1999年4月17日,接下来累计回历5月10日的积日(1月30日+二月29日+三月30日+四月29日+10日=128 日),128日-1(元旦)=127日,从公历1999年4月17日之后再加107日,便知回历1420年5月10日对应公历1999年8月22日;

③ 回历1430年1月1日,对应公历2008年12月29日(农历戊子年十二月初三)

注意:这个算法可能会有一天的误差,即有可能转换的日期多了或少了一天。用这个算法,还需要通过星期来校验,因为星期几是唯一的。

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/274/

标签: 万年历
分享给朋友:

“回历与公历换算” 的相关文章

Android Studio xml编译error: Apostrophe not preceded by \

Android Studio xml编译error: Apostrophe not preceded by \

问题: Resource Path Location Type error: Apostrophe not preceded by \ (in Search' Titles) strings.xml 原因: 在string.xml中使用了转义字符 解决办法: 在编译出...

itunes无法备份ipad,因为未能与ipad开始会话

现象:ipad连接电脑后,提示“itunes无法备份ipad,因为未能与ipad开始会话” 原因:之前备份的时候发现备份进度条长时间未动,以为是死机,所以拔掉了ipad,重新连接后,无法备份。 解决办法: 1、在itunes偏好设置里,删除ipad的旧有备份 2、修复系统权限(不知道这步是不...

模数转换器的分类

直接ADC是将输入模拟电压直接转换成数字量,如并联比较型ADC和逐次比较型ADC; 间接ADC是先将输入模拟电压转换成时间或频率,然后再把这些中间量转换成数字量,如双积分型ADC。 并联比较型ADC 优点:采用各量级同时并行比较,各位输出码同时并行产生,因此转换速度快,转换速度与输出码位数无关...

如何统计SQL语句查询出来的条数

可以通过count函数来实现。 sqlOne:select * from tablename1 where id>5;此语句查询出来多条记录,之后看做一个新的表。 sqlTwo:select conut(*) from (select * from tablename1 where id>...

如何备份iOS4.2.1SHSH文件

如何备份iOS4.2.1SHSH文件

本教程指导大家如何备份iOS4.2.1的SHSH文件,使用工具为TinyUmbrella4.21.02,支持全系列的iPhone4,iPhone3GS,iPhone3G,iPod Touch4G,iPod Touch3G,iPod Touch2G和iPad。 没有越狱的用户或者还没有升级iOS4....

ios宏: 判断是否是retina屏,是否iPad,设备判断(4,5,5s,6等)

#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) #define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) #def...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。