与科普特历相比,波斯历更是不能归为“失落的历法”,前者好歹还是起源于远古,更有着古埃及历法的渊源;波斯历则是只能前推到相对较近的公元1079年,于是本文题目再次姑且为之。现在通行波斯历的国家包括伊朗和阿富汗,还有其他若干中亚国家。
和现行公历一样,波斯历也是纯太阳历法,又有起源于中世纪的Jalali历法与现代波斯历之分,其主要区别是置闰法则。
Jalali历法的引进是1079年3月15日,由伊斯法罕皇家天文台的天文学家、数学家兼诗人欧玛尔·海亚姆(Omar Khayyam,下图)等人引荐。在此之前,伊朗本地即已存在太阳历,但并不存在置闰的概念,因此随着时间的推移,给农事、税收等工作带来了很大的不便。此后Jalali历法沿用800余年,直到1925年3月31日,才由伊朗议会确定进行改革。1957年,阿富汗也采用了这一历法。
波斯历的一年也是分为12个月,但与公历大小月穿插的安排不同,波斯历中,每年前6个月是大月,后6个月是小月,其中最后一个月是置闰之时,平年29天,闰年30天。现代波斯历的各月名称与对应天数如下:Farvardin(Frvrdyn,31天)、Ordibehesht(ArdybhSt,31天)、Khordad(Krdad,31天)、Tir(Tyr,31天)、Mordad(Mrdad,31天)、Shahrivar(Shryvr,31天)、Mehr(Mhr,30天)、Aban(Aban,30天)、Azar(Azr,30天)、Dey(Dy,30天)、Bahman(Bhmn,30天)、Esfand(Asfnd,29/30天)。不过在1925年之前的伊朗与现今的阿富汗,这些名称是对应黄道星座的阿拉伯语名称。
年首的确定是取太阳过春分点的时间,如果它发生在德黑兰时间(确切地说是东经52.5度的地方时)正午之前,是日算作是新年第一天;否则次日则算作来年第一天。波斯历的新年在中亚地区被称为Norouz,是个相当重要的节日。波斯历法起算点与伊斯兰历法相同,是公元622年即穆罕默德从麦加避难前往麦地那的年份。年份后缀为AP,是Anno Persico(或Anno Persarum,即波斯历)的缩写。
大小月的安排也不无道理。众所周知,地球在公转轨道上运行的速度并不均匀,在冬至点附近速度较快,夏至附近速度较慢。因此,从春分运行到夏至以及从夏至运行到秋分所需时间要长于从秋分到冬至以及冬至到春分的时间。由于波斯历的前6个月长度比后6个月更长,更以春分为年首,当下Tir、Mehr、Dey三个月的第一天就正好与夏至、秋分和冬至吻合,方便了季节的定义和区分。
其实论精确度,波斯历说来比公历还要准确。它完全以太阳运行为基础。早在欧玛尔·海亚姆的时代,置闰即已确定为33年8闰,这样平均年长就是365.2424日,与回归年实际长度365.2422日十分接近;而现代通行的波斯历中,更是采用了2820年683闰的规则,平均年长的小数点后前4位完全一致,精确度达到了200万年仅与实际太阳运行相差一天的水平。
具体计算闰年有些麻烦,因为现代波斯历置闰是采取大循环套小循环的方式,2820年分为21个子周期,每个子周期128年,最后一个子周期是132年。每个子周期又分为4个小周期,分别长29年、33年、33年和33年(对于最后一个子周期,是29、33、33、37年)。在29/33/37年长度的小周期内,只要大于1并且被4整除余1的年份即是闰年。
现代波斯历还算比较规律,对于1925年之前的历法,由于欧玛尔·海亚姆只是定下了33年8闰的原则,并无具体说明,也给转换带来了不小的麻烦。本人在这里犯一回懒,因纯粹考虑实用,无心追究,给个链接了结:http://www.payvand.com/calendar
结合精确的置闰法则以及合理的月份安排,当下波斯历季节的短期漂移很小,还不到半天,如下面这张示意图所示:
图片来源:Answers.com
顺便提一下伊朗一带的星期划分,一星期的起始并非周一或周日,而是周六,而周五是休息日。各天名称依次为:Shanbeh、Yekshanbeh、Doshanbeh、Seshanbeh、Chaharshanbeh 、Panjshanbeh与Jom’eh。
波斯历与公历的转换:http://www.netnative.com/calendar/
波斯历之外,历法相关的文章尚有犹太历待写,至于本人同样不很熟悉的伊斯兰历,因为手头已有其他转换软件,暂时没有必要动用Emacs,就先放过一马了,回来有时间再说吧,最近实在太忙……
分享到:
相关推荐
波斯日历自动转换Js版,希望大家能用得上
太阳历 波斯历 伊朗历 日期转换 太阳历 波斯历 伊朗历 日期转换 太阳历 波斯历 伊朗历 日期转换
波斯历法日历JS控件
波斯历法的日历js控件
包括公历转波斯/伊斯兰日历、波斯/伊斯兰日历转公历,获取波斯/伊斯兰日历一个月的最大天数等方法
对于波斯和伊斯兰历法,数字以东方阿拉伯数字显示。 例如: [outdatenum,outdatetxt] = dateconv(2000,1,1,'ce','sh') 返回波斯太阳回历中 2000 年 1 月 1 日的等效日期: >> [outdatenum,outdatetxt] = dateconv...
一个简单的 GNU/Linux 波斯历 能力 查看公历和阳历 调整假期的颜色 设置日子的顺序 通过插件开发 默认插件 事件插件 根据伊朗官方日历的太阳、公历和月球事件 能力 标记活动日期 根据事件添加假期 设置日历上事件的...
注意:对于时间Bieng,我们位于http://code.google.com/p/persian-calendar/上,它是JDK的轻巧易用的波斯日历系统(称为jalali或shamsi)。 从完全用VB编写的“ casema.nl/couprie/calmath/persian/index.html”中...
一个简单的波斯日历,显示当前的分机图标。 一个简单的波斯日历,显示当前的分机图标。 支持语言:English (United States)
锈波斯历Rust 波斯历 v0.1.1提供了在波斯(太阳回历)和公历之间转换的功能。儒略历用作所有转换的接口。crate 名称是ptime并且它与 cratetime兼容。此源代码在 MIT 许可下获得许可,可在 LICENSE 文件中找到。安装...
波斯日历 // ptime_test.go type pMonthname struct { month Month name string } type amPmNamestruct { ap AmPm name string } type pdate struct { year int month Month } type gdate struct { year int...
Android波斯日历 تقویمفارسیاندروید تقویمساده,رایگانوززاداندرویدبرایدریافتوصصبربرگهٔ发行دربالایصفحهکلیککنید。 下载 ...
c语言实现的伊朗历和公历的相互转换 函数名称:ShamsiToMiladi 函数说明:转换波斯历为公历 函数名称:MiladiToShamsi 函数说明:转换公历为波斯历
波斯材质日期时间选择器 该库提供了一个hijri / shamsi(伊朗日历)日期选择器和一个正常时间选择器,该时间选择器是根据Android 4.0.3(API 15)+的选择器。 日期选择器 时间选择器 您可以在问题页面上报告任何...
一个与“波斯日历”,“回历日历”和“格雷戈里日历”一起使用的库,并考虑了专为波斯(波斯语)或阿拉伯语言应用程序设计的WinForms GUI控件,但可在任何使用日历和日期的Windows应用程序中使用。
Go波斯日历Go波斯日历v0.3提供了在波斯日历(太阳回历)和公历之间转换的功能。 儒略历用作所有转换的界面。 程序包名称为ptime。Go Persian Calendar Go Persian Calendar v0.3提供了波斯(Solar Hijri)和公历之间...
已图片方式,绘制出波斯语的全部字符,共外包企业开发波斯应用软件参考.
一个有用的应用程序是专门为帮助您在波斯日期格式和 Miladi 格式波斯日期和时间之间转换日期而创建的,它是一个简单的工具,任何人都可以使用它来执行波斯格式和 Miladi(格里高利)系统之间的转换。 使用波斯日期和...
波斯日历 基于Java的图形化波斯压光机
该文件是详细描述马波斯P7动平衡如何调整的