PersianCalendar クラス
アセンブリ: mscorlib (mscorlib.dll 内)


地域によって月の名前に相違がある場合もありますが、ペルシャ暦は、ペルシャ語が話されるほとんどの国で使用されています。ペルシャ暦はイランとアフガニスタンにおける公式な暦であり、カザフスタンやタジキスタンなどの地域では代替暦の 1 つとして使用されています。
ペルシャ暦は、ヒジュラの年から日付が始まります。この年は、マホメットがメッカからメディナに移住した紀元 622 年に対応します。たとえば、紀元 2002 年 3 月 21 日は、A.P. (Anno Persico) 1381 年の Farvardeen という月の最初の日に相当します。
ペルシャ暦は、太陽年に基づいていて、1 年を約 365 日とします。1 年は 4 つの季節を持ち、新年は、地球の中心から見たときに太陽が南半球から北半球に赤道を横切るように見えるときから始まります。新年になると、Farvardeen の月の最初の日を迎えます。これは、北半球で春の最初の日となります。
ペルシャ暦では、最初の 6 つの月をそれぞれ 31 日とし、その次の 5 つの月をそれぞれ 30 日とします。最後の月は、平年で 29 日、閏年で 30 日とします。閏年とは、33 で割ったときの剰余が 1、5、9、13、17、22、26、または 30 となる年です。たとえば、1370 年は、33 で割ったときの剰余が 17 となるので閏年です。およそ 33 年周期で 8 つの閏年があります。
PersianCalendar の使用PersianCalendar オブジェクトは、ペルシャ暦の日付を計算したり、ペルシャ暦とグレゴリオ暦間で日付を変換したりする場合に使用します。
PersianCalendar オブジェクトをカルチャの既定のカレンダーとして使うことは避けてください。既定のカレンダーは、CultureInfo.Calendar プロパティによって指定され、CultureInfo.OptionalCalendars プロパティによって返されるいずれかのカレンダーであることが必要です。現在、PersianCalendar クラスのカレンダーは CultureInfo クラスがサポートするカルチャでは一切選択できません。したがって、既定のカレンダーに使用することもできません。

PersianCalendar クラスのメンバであるフィールド、プロパティ、およびメソッドを使用するコード例を次に示します。
' This example demonstrates the members of the PersianCalendar class. Imports System Imports System.Globalization Class Sample Public Shared Sub Main() '-------------------------------------------------------------------------------- ' Get today's date. '-------------------------------------------------------------------------------- Console.WriteLine(vbCrLf & _ "................. Today ..........................." & vbCrLf) Dim jc As New PersianCalendar() Dim thisDate As DateTime = DateTime.Now ' Use thisDate twice to display the name of the day and the current date. Console.WriteLine("Today is {0:dddd}, {0}", thisDate) '-------------------------------------------------------------------------------- ' Fields '-------------------------------------------------------------------------------- Console.WriteLine(vbCrLf & _ "............... Fields ............................" & vbCrLf) Console.WriteLine("PersianEra = {0}", PersianCalendar.PersianEra) '-------------------------------------------------------------------------------- ' Properties '-------------------------------------------------------------------------------- Console.WriteLine(vbCrLf & _ "............... Properties ........................." & vbCrLf) Console.Write("Eras:") Dim era As Integer For Each era In jc.Eras Console.WriteLine(" era = {0}", era) Next era '-------------------------------------------------------------------------------- Console.WriteLine("MaxSupportedDateTime = {0:G}", jc.MaxSupportedDateTime) '-------------------------------------------------------------------------------- Console.WriteLine("MinSupportedDateTime = {0:G}", jc.MinSupportedDateTime) '-------------------------------------------------------------------------------- Console.WriteLine("TwoDigitYearMax = {0}", jc.TwoDigitYearMax) '-------------------------------------------------------------------------------- ' Methods '-------------------------------------------------------------------------------- Console.WriteLine(vbCrLf & _ "................ Methods ..........................." & vbCrLf) ' Create a date six months in the future and another date six months in the past. Dim plus6Months As DateTime = jc.AddMonths(thisDate, 6) Dim minus6Months As DateTime = jc.AddMonths(thisDate, -6) Console.WriteLine("AddMonths: thisDate + 6 months = {0}", plus6Months) Console.WriteLine(" thisDate - 6 months = {0}", minus6Months) '-------------------------------------------------------------------------------- ' Create a date five years in the future and another date three years in the past. Dim plus5Years As DateTime = jc.AddYears(thisDate, 5) Dim minus3Years As DateTime = jc.AddYears(thisDate, -3) Console.WriteLine("AddYears: thisDate + 5 years = {0}", plus5Years) Console.WriteLine(" thisDate - 3 years = {0}", minus3Years) '-------------------------------------------------------------------------------- Console.WriteLine("GetDayOfMonth: month = {0}", jc.GetDayOfMonth(thisDate)) '-------------------------------------------------------------------------------- Console.WriteLine("GetDayOfWeek: day = {0}", jc.GetDayOfWeek(thisDate)) '-------------------------------------------------------------------------------- Console.WriteLine("GetDayOfYear: day = {0}", jc.GetDayOfYear(thisDate)) '-------------------------------------------------------------------------------- Console.WriteLine("GetDaysInMonth: days = {0}", _ jc.GetDaysInMonth(thisDate.Year, _ thisDate.Month, _ PersianCalendar.PersianEra)) '-------------------------------------------------------------------------------- Console.WriteLine("GetDaysInYear: days = {0}", _ jc.GetDaysInYear(thisDate.Year, PersianCalendar.PersianEra)) '-------------------------------------------------------------------------------- Console.WriteLine("GetEra: era = {0}", jc.GetEra(thisDate)) '-------------------------------------------------------------------------------- Console.WriteLine("GetLeapMonth: leap month (if any) = {0}", _ jc.GetLeapMonth(thisDate.Year, PersianCalendar.PersianEra)) '-------------------------------------------------------------------------------- Console.WriteLine("GetMonth: month = {0}", jc.GetMonth(thisDate)) '-------------------------------------------------------------------------------- Console.WriteLine("GetMonthsInYear: months in a year = {0}", _ jc.GetMonthsInYear(thisDate.Year, PersianCalendar.PersianEra)) '-------------------------------------------------------------------------------- Console.WriteLine("GetYear: year = {0}", jc.GetYear(thisDate)) '-------------------------------------------------------------------------------- Console.WriteLine("IsLeapDay: This is a leap day = {0}", _ jc.IsLeapDay(thisDate.Year, _ thisDate.Month, thisDate.Day, _ PersianCalendar.PersianEra)) '-------------------------------------------------------------------------------- Console.WriteLine("IsLeapMonth: This is a leap month = {0}", _ jc.IsLeapMonth(thisDate.Year, _ thisDate.Month, _ PersianCalendar.PersianEra)) '-------------------------------------------------------------------------------- Console.WriteLine("IsLeapYear: 1370 is a leap year = {0}", _ jc.IsLeapYear(1370, PersianCalendar.PersianEra)) '-------------------------------------------------------------------------------- ' Create a date in the Gregorian calendar and the Persian calendar. The date is ' the current date and an arbitrary time of 20 hours, 30 minutes, and 15.5 ' seconds. Dim dt1 As New DateTime(thisDate.Year, thisDate.Month, thisDate.Day, _ 20, 30, 15, 500) Dim dt2 As DateTime = jc.ToDateTime(thisDate.Year, thisDate.Month, _ thisDate.Day, _ 20, 30, 15, 500, _ PersianCalendar.PersianEra) Console.WriteLine("ToDateTime:") Console.WriteLine(" Gregorian calendar: {0}", dt1) Console.WriteLine(" Persian calendar: {0}", dt2) '-------------------------------------------------------------------------------- ' Get the 4-digit year for a year whose last two digits are 99. The 4-digit year ' depends on the current value of the TwoDigitYearMax property. Console.WriteLine("ToFourDigitYear:") Console.WriteLine(" If TwoDigitYearMax = {0}, ToFourDigitYear(99) = {1}", _ jc.TwoDigitYearMax, jc.ToFourDigitYear(99)) jc.TwoDigitYearMax = thisDate.Year Console.WriteLine(" If TwoDigitYearMax = {0}, ToFourDigitYear(99) = {1}", _ jc.TwoDigitYearMax, jc.ToFourDigitYear(99)) End Sub 'Main End Class 'Sample ' 'This code example produces the following results: ' '................. Today ........................... ' 'Today is Friday, 8/20/2004 1:08:37 PM ' '............... Fields ............................. ' 'PersianEra = 1 ' '............... Properties ......................... ' 'Eras: era = 1 'MaxSupportedDateTime = 12/31/9999 11:59:59 PM 'MinSupportedDateTime = 3/21/0622 12:00:00 AM 'TwoDigitYearMax = 1410 ' '................ Methods ........................... ' 'AddMonths: thisDate + 6 months = 2/18/2005 1:08:37 PM ' thisDate - 6 months = 2/19/2004 1:08:37 PM 'AddYears: thisDate + 5 years = 8/21/2009 1:08:37 PM ' thisDate - 3 years = 8/21/2001 1:08:37 PM 'GetDayOfMonth: month = 30 'GetDayOfWeek: day = Friday 'GetDayOfYear: day = 154 'GetDaysInMonth: days = 30 'GetDaysInYear: days = 365 'GetEra: era = 1 'GetLeapMonth: leap month (if any) = 0 'GetMonth: month = 5 'GetMonthsInYear: months in a year = 12 'GetYear: year = 1383 'IsLeapDay: This is a leap day = False 'IsLeapMonth: This is a leap month = False 'IsLeapYear: 1370 is a leap year = True 'ToDateTime: ' Gregorian calendar: 8/20/2004 8:30:15 PM ' Persian calendar: 11/11/2625 8:30:15 PM 'ToFourDigitYear: ' If TwoDigitYearMax = 1410, ToFourDigitYear(99) = 1399 ' If TwoDigitYearMax = 2004, ToFourDigitYear(99) = 1999 '
// This example demonstrates the members of the PersianCalendar class. using System; using System.Globalization; class Sample { public static void Main() { //-------------------------------------------------------------------------------- // Get today's date. //-------------------------------------------------------------------------------- Console.WriteLine("\n................. Today ...........................\n"); PersianCalendar jc = new PersianCalendar(); DateTime thisDate = DateTime.Now; // Use thisDate twice to display the name of the day and the current date. Console.WriteLine("Today is {0:dddd}, {0}", thisDate); //-------------------------------------------------------------------------------- // Fields //-------------------------------------------------------------------------------- Console.WriteLine("\n............... Fields .............................\n"); Console.WriteLine("PersianEra = {0}", PersianCalendar.PersianEra); //-------------------------------------------------------------------------------- // Properties //-------------------------------------------------------------------------------- Console.WriteLine("\n............... Properties .........................\n"); Console.Write("Eras:"); foreach (int era in jc.Eras) { Console.WriteLine(" era = {0}", era); } //-------------------------------------------------------------------------------- Console.WriteLine("MaxSupportedDateTime = {0:G}", jc.MaxSupportedDateTime); //-------------------------------------------------------------------------------- Console.WriteLine("MinSupportedDateTime = {0:G}", jc.MinSupportedDateTime); //-------------------------------------------------------------------------------- Console.WriteLine("TwoDigitYearMax = {0}", jc.TwoDigitYearMax); //-------------------------------------------------------------------------------- // Methods //-------------------------------------------------------------------------------- Console.WriteLine("\n................ Methods ...........................\n"); // Create a date six months in the future and another date six months in the past. Console.WriteLine("AddMonths: thisDate + 6 months = {0}\n" + " thisDate - 6 months = {1}", jc.AddMonths(thisDate, 6), jc.AddMonths(thisDate, -6)); //-------------------------------------------------------------------------------- // Create a date five years in the future and another date three years in the past. Console.WriteLine("AddYears: thisDate + 5 years = {0}\n" + " thisDate - 3 years = {1}", jc.AddYears(thisDate, 5), jc.AddYears(thisDate, -3)); //-------------------------------------------------------------------------------- Console.WriteLine("GetDayOfMonth: month = {0}", jc.GetDayOfMonth(thisDate)); //-------------------------------------------------------------------------------- Console.WriteLine("GetDayOfWeek: day = {0}", jc.GetDayOfWeek(thisDate)); //-------------------------------------------------------------------------------- Console.WriteLine("GetDayOfYear: day = {0}", jc.GetDayOfYear(thisDate)); //-------------------------------------------------------------------------------- Console.WriteLine("GetDaysInMonth: days = {0}", jc.GetDaysInMonth( thisDate.Year, thisDate.Month, PersianCalendar.PersianEra)); //-------------------------------------------------------------------------------- Console.WriteLine("GetDaysInYear: days = {0}", jc.GetDaysInYear(thisDate.Year, PersianCalendar.PersianEra)); //-------------------------------------------------------------------------------- Console.WriteLine("GetEra: era = {0}", jc.GetEra(thisDate)); //-------------------------------------------------------------------------------- Console.WriteLine("GetLeapMonth: leap month (if any) = {0}", jc.GetLeapMonth(thisDate.Year, PersianCalendar.PersianEra)); //-------------------------------------------------------------------------------- Console.WriteLine("GetMonth: month = {0}", jc.GetMonth(thisDate)); //------------------------------------------------------------- Console.WriteLine("GetMonthsInYear: months in a year = {0}", jc.GetMonthsInYear(thisDate.Year, PersianCalendar.PersianEra)); //-------------------------------------------------------------------------------- Console.WriteLine("GetYear: year = {0}", jc.GetYear(thisDate)); //-------------------------------------------------------------------------------- Console.WriteLine("IsLeapDay: This is a leap day = {0}", jc.IsLeapDay(thisDate.Year, thisDate.Month, thisDate.Day, PersianCalendar.PersianEra)); //-------------------------------------------------------------------------------- Console.WriteLine("IsLeapMonth: This is a leap month = {0}", jc.IsLeapMonth(thisDate.Year, thisDate.Month, PersianCalendar.PersianEra)); //-------------------------------------------------------------------------------- Console.WriteLine("IsLeapYear: 1370 is a leap year = {0}", jc.IsLeapYear(1370, PersianCalendar.PersianEra)); //-------------------------------------------------------------------------------- DateTime dt1 = new DateTime(thisDate.Year, thisDate.Month, thisDate.Day, 20, 30, 15, 500); DateTime dt2 = jc.ToDateTime(thisDate.Year, thisDate.Month, thisDate.Day, 20, 30, 15, 500, PersianCalendar.PersianEra); Console.WriteLine("ToDateTime:"); Console.WriteLine(" Gregorian calendar: {0}\n" + " Persian calendar: {1}", dt1, dt2); //-------------------------------------------------------------------------------- // Get the 4-digit year for a year whose last two digits are 99. The 4-digit year // depends on the current value of the TwoDigitYearMax property. Console.WriteLine("ToFourDigitYear:"); Console.WriteLine(" If TwoDigitYearMax = {0}, ToFourDigitYear(99) = {1}", jc.TwoDigitYearMax, jc.ToFourDigitYear(99)); jc.TwoDigitYearMax = thisDate.Year; Console.WriteLine(" If TwoDigitYearMax = {0}, ToFourDigitYear(99) = {1}", jc.TwoDigitYearMax, jc.ToFourDigitYear(99)); } } /* This code example produces the following results: ................. Today ........................... Today is Friday, 8/20/2004 1:08:37 PM ............... Fields ............................. PersianEra = 1 ............... Properties ......................... Eras: era = 1 MaxSupportedDateTime = 12/31/9999 11:59:59 PM MinSupportedDateTime = 3/21/0622 12:00:00 AM TwoDigitYearMax = 1410 ................ Methods ........................... AddMonths: thisDate + 6 months = 2/18/2005 1:08:37 PM thisDate - 6 months = 2/19/2004 1:08:37 PM AddYears: thisDate + 5 years = 8/21/2009 1:08:37 PM thisDate - 3 years = 8/21/2001 1:08:37 PM GetDayOfMonth: month = 30 GetDayOfWeek: day = Friday GetDayOfYear: day = 154 GetDaysInMonth: days = 30 GetDaysInYear: days = 365 GetEra: era = 1 GetLeapMonth: leap month (if any) = 0 GetMonth: month = 5 GetMonthsInYear: months in a year = 12 GetYear: year = 1383 IsLeapDay: This is a leap day = False IsLeapMonth: This is a leap month = False IsLeapYear: 1370 is a leap year = True ToDateTime: Gregorian calendar: 8/20/2004 8:30:15 PM Persian calendar: 11/11/2625 8:30:15 PM ToFourDigitYear: If TwoDigitYearMax = 1410, ToFourDigitYear(99) = 1399 If TwoDigitYearMax = 2004, ToFourDigitYear(99) = 1999 */

System.Globalization.Calendar
System.Globalization.PersianCalendar


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からPersianCalendar クラスを検索する場合は、下記のリンクをクリックしてください。

- PersianCalendar クラスのページへのリンク