ネイティブのSystem.Globalization.PersianCalendar.NETクラスをいつでも使用できます。しかし、それは少しトリッキーです。
Jalali Date(ここでは1387/03/18)からGregorianDateTimeに変換するための次のコードを検討してください。
System.Globalization.PersianCalendar persianCal = new System.Globalization.PersianCalendar();
DateTime GregorianDate = persianCal.ToDateTime(1387, 3, 18, 12, 0, 0, 0);
グレゴリオ暦のDateTime(ここでは1983/08/03)をペルシアの日付文字列に変換する次のコード:
DateTime GregorianDate = DateTime.Parse("1983/08/03");
string FarsiDateConverted = persianCal.GetYear(GregorianDate).ToString("0000") + "/" +
persianCal.GetMonth(GregorianDate).ToString("00") + "/" +
persianCal.GetDayOfMonth(GregorianDate).ToString("00");
@Dan Bailiffによって提供されたリンクについてのメモだけで、記事の著者を繰り返す必要があります。
「.NETFrameworkのPersianCalendarの代わりにこのJalaiCalendarを使用する主な目的は、履歴イベントの日付会話の必要性である必要があります。Webサイトに現在の日付を表示するだけの場合は、PersianCalendarで十分です。」
実際、.NET Frameworkのアルゴリズムは、1178年から1634年までのJalali(1799年から2256年までのグレゴリオ暦)で正しいものです。
アップデート:
.NET Framework 4.6以降、PersianCalendarクラスは、観測アルゴリズムではなく、イラン暦の太陽天文アルゴリズムを使用して日付を計算します。これにより、PersianCalendarの実装は、ペルシャ暦が最も広く使用されている2つの国であるイランとアフガニスタンで使用されているペルシャ暦と一致します。したがって、4.6を超えるバージョンの.NET Frameworkを使用する場合、ペルシア暦との間で日付を変換するために他のライブラリは必要ありません。