PersianCalendar 類別

本文提供此 API 參考文件的補充備註。

波斯歷用於大多數說波斯語的國家/地區,雖然某些地區使用不同的月份名稱。 波斯曆是伊朗和阿富汗的官方日曆,它是哈薩克和塔吉克等地區的替代日曆之一。

注意

如需在 .NET 中使用 PersianCalendar 類別和其他行事曆類別的相關信息,請參閱 使用行事曆

波斯歷是一個太陽希里歷法,從希拉的年開始,相當於穆罕默德(PBUH)從麥加遷移至麥地那的一年622攝氏度。

波斯歷以太陽年為基礎,長約365天。 一年迴圈四個季節,新的一年開始,太陽似乎從南半球穿過赤道到北半球,從地球中心看。 新年是法瓦爾丁月的第一天,這是北半球春天的第一天。 例如,2002 年 3 月 21 日 C.E. 的日期會對應到 1381 年 Anno Persico 中 Farvardeen 月份的第一天。

波斯歷前六個月各有 31 天,接下來五個月各有 30 天,上個月在一個普通年份有 29 天,一個閏年有 30 天。 閏年是一年,當除以 33 時,其餘為 1、5、9、13、17、22、26 或 30。 例如,1370 年是閏年,因為除以 33 會產生 17 的餘數。 每 33 年週期大約有 8 個閏年。

PersianCalendar 類別和 .NET Framework 版本

從 .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 年 9378 年第 10 個月的第 10 天變更為波斯歷第 10 個月的第 13 天。

  • IsLeapYear方法可能會傳回與先前不同的結果。

使用波斯文Calendar 類別

應用程式會使用 PersianCalendar 對象來計算波斯曆中的日期,或將波斯日期轉換成公曆日期與公曆日期。

您無法使用 PersianCalendar 物件做為文化特性的預設行事曆。 默認行事曆是由 CultureInfo.Calendar 屬性指定,而且必須是 屬性所 CultureInfo.OptionalCalendars 傳回的其中一個行事曆。 目前,類別 PersianCalendar 不是類別所支援之任何文化特性的 CultureInfo 選擇性行事曆,因此不能是預設行事曆。