本文提供了此 API 参考文档的补充说明。

波斯语日历用于大多数说波斯语的国家/地区,尽管某些区域使用不同的月份名称。 波斯历是伊朗和阿富汗的官方日历,它是哈萨克斯坦和塔吉克斯坦等地区的替代日历之一。

注释

有关在 .NET 中使用 PersianCalendar 类和其他日历类的信息,请参阅 使用日历

波斯历是一种回回阳历,从对应于公元 622 年的迁徙年开始,即穆罕默德(愿主福安之)从麦加迁移到麦地那的那一年。

波斯历以太阳年为基础,长约365天。 一年经历四个季节。当太阳从地球中心观测穿过赤道,从南半球到达北半球时,新的一年开始。 新年标志着法瓦尔丁月的第一天,这是北半球春天的第一天。 例如,2002 年 3 月 21 日的日期对应于 1381 年 Anno Persico 中 Farvardeen 月份的第一天。

波斯历的前六个月中,每一个月都有31天,未来5个月都有30天,上个月在普通年份有29天,一跃年有30天。 闰年是指在一种算法中,一年除以33后,余数为1、5、9、13、17、22、26或30。 例如,1370 年是一个跃升年,因为将其除以 33,余数为 17。 每33年周期中大约有8个闰年。

PersianCalendar 类和 .NET 版本

从 .NET Framework 4.6 开始, PersianCalendar 该类使用 Hijri 太阳天文算法而不是观测算法来计算日期。 PersianCalendar这使得实施与在伊朗和阿富汗使用的波斯历保持一致,这是波斯历最普遍使用的两个国家。 如果安装了 .NET Framework 4.6,更改会影响在 .NET Framework 4 或更高版本上运行的所有应用。

由于算法已更改:

  • 在公历中转换日期介于 1800 到 2123 之间的日期时,这两种算法应返回相同的结果。
  • 在公历中将日期转换为 1800 和 2123 之后的日期时,这两种算法可能会返回不同的结果。
  • 属性值 MinSupportedDateTime 已从公历的 0622 年 3 月 21 日更改为公历中的 0622 年 3 月 22 日。
  • 属性值 MaxSupportedDateTime 从波斯历9378年第10个月的第10天改为波斯历9378年第10个月的第13天。
  • 该方法 IsLeapYear 可能返回的结果可能与之前的结果不同。

使用 PersianCalendar 类

可以使用PersianCalendar对象计算波斯历中的日期,或将波斯日期转换为公历日期,也可以从公历日期转换为波斯日期。 波斯历是波斯语(阿富汗)和库尔德中部(伊朗)等文化 的默认日历