GregorianCalendar 類別

定義

代表西曆。

public ref class GregorianCalendar : System::Globalization::Calendar
public class GregorianCalendar : System.Globalization.Calendar
[System.Serializable]
public class GregorianCalendar : System.Globalization.Calendar
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class GregorianCalendar : System.Globalization.Calendar
type GregorianCalendar = class
    inherit Calendar
[<System.Serializable>]
type GregorianCalendar = class
    inherit Calendar
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type GregorianCalendar = class
    inherit Calendar
Public Class GregorianCalendar
Inherits Calendar
繼承
GregorianCalendar
屬性

範例

下列程式碼範例顯示只有在 DateTimeFormatInfo 行事曆為西曆且文化特性使用紀元名稱 「A.D.」 時,才會忽略紀元名稱中的標點符號。

using namespace System;
using namespace System::Globalization;
using namespace System::Collections;
int main()
{
   
   // Creates strings with punctuation and without.
   String^ strADPunc = "A.D.";
   String^ strADNoPunc = "AD";
   String^ strCEPunc = "C.E.";
   String^ strCENoPunc = "CE";
   
   // Calls DTFI::GetEra for each culture that uses GregorianCalendar as the default calendar.
   Console::WriteLine( "            ----- AD -----  ----- CE -----" );
   Console::WriteLine( "CULTURE     PUNC   NO PUNC  PUNC   NO PUNC  CALENDAR" );
   IEnumerator^ en = CultureInfo::GetCultures( CultureTypes::SpecificCultures )->GetEnumerator();
   while ( en->MoveNext() )
   {
      CultureInfo^ myCI = safe_cast<CultureInfo^>(en->Current);
      Console::Write( "{0, -12}", myCI );
      Console::Write( "{0,-7}{1,-9}", myCI->DateTimeFormat->GetEra( strADPunc ), myCI->DateTimeFormat->GetEra( strADNoPunc ) );
      Console::Write( "{0, -7}{1, -9}", myCI->DateTimeFormat->GetEra( strCEPunc ), myCI->DateTimeFormat->GetEra( strCENoPunc ) );
      Console::Write( "{0}", myCI->Calendar );
      Console::WriteLine();
   }
}

/*
This code produces the following output.  This output has been cropped for brevity.

            ----- AD -----  ----- CE -----
CULTURE     PUNC   NO PUNC  PUNC   NO PUNC  CALENDAR
ar-SA       -1     -1       -1     -1       System.Globalization.HijriCalendar
ar-IQ       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-EG       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-LY       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-DZ       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-MA       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-TN       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-OM       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-YE       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-SY       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-JO       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-LB       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-KW       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-AE       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-BH       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-QA       1      1        -1     -1       System.Globalization.GregorianCalendar
bg-BG       1      1        -1     -1       System.Globalization.GregorianCalendar
ca-ES       -1     -1       -1     -1       System.Globalization.GregorianCalendar
zh-TW       -1     -1       -1     -1       System.Globalization.GregorianCalendar
zh-CN       -1     -1       -1     -1       System.Globalization.GregorianCalendar
zh-HK       1      1        -1     -1       System.Globalization.GregorianCalendar
zh-SG       1      1        -1     -1       System.Globalization.GregorianCalendar
zh-MO       1      1        -1     -1       System.Globalization.GregorianCalendar
cs-CZ       -1     -1       -1     -1       System.Globalization.GregorianCalendar
da-DK       1      1        -1     -1       System.Globalization.GregorianCalendar

*/
using System;
using System.Globalization;

public class SamplesGregorianCalendar  {

   public static void Main()  {

      // Creates strings with punctuation and without.
      String strADPunc = "A.D.";
      String strADNoPunc = "AD";
      String strCEPunc = "C.E.";
      String strCENoPunc = "CE";

      // Calls DTFI.GetEra for each culture that uses GregorianCalendar as the default calendar.
      Console.WriteLine( "            ----- AD -----  ----- CE -----" );
      Console.WriteLine( "CULTURE     PUNC   NO PUNC  PUNC   NO PUNC  CALENDAR" );
      foreach ( CultureInfo myCI in CultureInfo.GetCultures( CultureTypes.SpecificCultures ) )  {
         Console.Write( "{0,-12}", myCI );
         Console.Write( "{0,-7}{1,-9}", myCI.DateTimeFormat.GetEra( strADPunc ), myCI.DateTimeFormat.GetEra( strADNoPunc ) );
         Console.Write( "{0,-7}{1,-9}", myCI.DateTimeFormat.GetEra( strCEPunc ), myCI.DateTimeFormat.GetEra( strCENoPunc ) );
         Console.Write( "{0}", myCI.Calendar );
         Console.WriteLine();
      }
   }
}

/*
This code produces the following output.  This output has been cropped for brevity.

            ----- AD -----  ----- CE -----
CULTURE     PUNC   NO PUNC  PUNC   NO PUNC  CALENDAR
ar-SA       -1     -1       -1     -1       System.Globalization.HijriCalendar
ar-IQ       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-EG       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-LY       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-DZ       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-MA       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-TN       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-OM       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-YE       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-SY       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-JO       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-LB       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-KW       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-AE       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-BH       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-QA       1      1        -1     -1       System.Globalization.GregorianCalendar
bg-BG       1      1        -1     -1       System.Globalization.GregorianCalendar
ca-ES       -1     -1       -1     -1       System.Globalization.GregorianCalendar
zh-TW       -1     -1       -1     -1       System.Globalization.GregorianCalendar
zh-CN       -1     -1       -1     -1       System.Globalization.GregorianCalendar
zh-HK       -1     -1       -1     -1       System.Globalization.GregorianCalendar
zh-SG       1      1        -1     -1       System.Globalization.GregorianCalendar
zh-MO       1      1        -1     -1       System.Globalization.GregorianCalendar
cs-CZ       -1     -1       -1     -1       System.Globalization.GregorianCalendar
da-DK       1      1        -1     -1       System.Globalization.GregorianCalendar

*/
Imports System.Globalization

Public Class SamplesGregorianCalendar

   Public Shared Sub Main()

      ' Creates strings with punctuation and without.
      Dim strADPunc As [String] = "A.D."
      Dim strADNoPunc As [String] = "AD"
      Dim strCEPunc As [String] = "C.E."
      Dim strCENoPunc As [String] = "CE"

      ' Calls DTFI.GetEra for each culture that uses GregorianCalendar as the default calendar.
      Console.WriteLine("            ----- AD -----  ----- CE -----")
      Console.WriteLine("CULTURE     PUNC   NO PUNC  PUNC   NO PUNC  CALENDAR")
      Dim myCI As CultureInfo
      For Each myCI In  CultureInfo.GetCultures(CultureTypes.SpecificCultures)
         Console.Write("{0,-12}", myCI)
         Console.Write("{0,-7}{1,-9}", myCI.DateTimeFormat.GetEra(strADPunc), myCI.DateTimeFormat.GetEra(strADNoPunc))
         Console.Write("{0,-7}{1,-9}", myCI.DateTimeFormat.GetEra(strCEPunc), myCI.DateTimeFormat.GetEra(strCENoPunc))
         Console.Write("{0}", myCI.Calendar)
         Console.WriteLine()
      Next myCI

   End Sub

End Class


'This code produces the following output.  This output has been cropped for brevity.
'
'            ----- AD -----  ----- CE -----
'CULTURE     PUNC   NO PUNC  PUNC   NO PUNC  CALENDAR
'ar-SA       -1     -1       -1     -1       System.Globalization.HijriCalendar
'ar-IQ       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-EG       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-LY       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-DZ       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-MA       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-TN       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-OM       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-YE       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-SY       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-JO       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-LB       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-KW       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-AE       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-BH       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-QA       1      1        -1     -1       System.Globalization.GregorianCalendar
'bg-BG       1      1        -1     -1       System.Globalization.GregorianCalendar
'ca-ES       -1     -1       -1     -1       System.Globalization.GregorianCalendar
'zh-TW       -1     -1       -1     -1       System.Globalization.GregorianCalendar
'zh-CN       -1     -1       -1     -1       System.Globalization.GregorianCalendar
'zh-HK       -1     -1       -1     -1       System.Globalization.GregorianCalendar
'zh-SG       1      1        -1     -1       System.Globalization.GregorianCalendar
'zh-MO       1      1        -1     -1       System.Globalization.GregorianCalendar
'cs-CZ       -1     -1       -1     -1       System.Globalization.GregorianCalendar
'da-DK       1      1        -1     -1       System.Globalization.GregorianCalendar

備註

西曆可辨識兩個紀元:B.C. 或 B.C.E.,以及 A.D. 或 C.E。這個 類別的 GregorianCalendar 實作只會辨識目前的紀元 (A.D 或 C.E.) 。

注意

如需在.NET Framework中使用 GregorianCalendar 類別和其他行事曆類別的相關資訊,請參閱使用行事曆

西曆中的閏年會定義為 4 平均除法的年份,除非 100 將它除。 不過,由 400 除的年份是閏年。 例如,1900 年不是閏年,而是 2000 年。 一般年份有 365 天,而閏年有 366 天。

西曆有 12 個月,每個月 28 到 31 天:1 月 (31 天) ,2 月 (28 或 29 天) , 3 月 (31 天) ,4 月 (30 天) ,5 月 (31 天) ,6 月 (30 天) ,7 月 (3) 1 天,8 月 (31 天) ,9 月 (30 天) , 10 月 (31 日) 、11 月 (30 天) ,以及 12 月 (31 日) 。 2 月在閏年期間有 29 天,一般年份有 28 天。

重要

根據預設,所有 DateTimeDateTimeOffset 值都會表示西曆中的日期和時間。

西曆是開發為 Julian 行事曆 (的替代專案,由類別) 表示 JulianCalendar ,且第一次在 1582 年 10 月 15 日于少數文化特性中引進。 處理文化特性採用西曆之前的歷史日期時,如果原始行事曆可在.NET Framework中使用,您應該使用原始行事曆。 例如,丹麥從 Julian 行事曆變更為 2 月 19 日 (年 2 月 19 日西曆) 或 3 月 1 日在西曆) 1700 年 3 月 1 日 (。 在此情況下,針對採用西曆之前的日期,您應該使用 Julian 行事曆。 不過,請注意,沒有任何文化特性提供 類別的 JulianCalendar 內建支援。 您必須使用 JulianCalendar 類別作為獨立行事曆。 如需詳細資訊,請參閱 使用行事曆

下列範例說明 Julian 行事曆中的 2 月 18 日 1700 年 2 月 18 日,這是丹麥正式使用 Julian 行事曆的最後一天,是西曆 1700 年 3 月 1 日之前的一天。

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      Thread.CurrentThread.CurrentCulture = new CultureInfo("da-DK");

      JulianCalendar jc = new JulianCalendar();
      DateTime lastDate = new DateTime(1700, 2, 18, jc);
      Console.WriteLine("Last date (Gregorian): {0:d}", lastDate);
      Console.WriteLine("Last date (Julian): {0}-{1}-{2}\n", jc.GetDayOfMonth(lastDate),
                        jc.GetMonth(lastDate), jc.GetYear(lastDate));

      DateTime firstDate = lastDate.AddDays(1);
      Console.WriteLine("First date (Gregorian): {0:d}", firstDate);
      Console.WriteLine("First date (Julian): {0}-{1}-{2}",  jc.GetDayOfMonth(firstDate),
                        jc.GetMonth(firstDate), jc.GetYear(firstDate));
   }
}
// The example displays the following output:
//       Last date (Gregorian): 28-02-1700
//       Last date (Julian): 18-2-1700
//
//       First date (Gregorian): 01-03-1700
//       First date (Julian): 19-2-1700
Imports System.Globalization
Imports System.Threading

Module Example
   Public Sub Main()
      Thread.CurrentThread.CurrentCulture = New CultureInfo("da-DK")
      
      Dim jc As New JulianCalendar()
      Dim lastDate As New DateTime(1700, 2, 18, jc)
      Console.WriteLine("Last date (Gregorian): {0:d}", lastDate)
      Console.WriteLine("Last date (Julian): {0}-{1}-{2}", jc.GetDayOfMonth(lastDate),
                        jc.GetMonth(lastDate), jc.GetYear(lastDate))
      Console.WriteLine()
      
      Dim firstDate As DateTime = lastDate.AddDays(1)
      Console.WriteLine("First date (Gregorian): {0:d}", firstDate)
      Console.WriteLine("First date (Julian): {0}-{1}-{2}",  jc.GetDayOfMonth(firstDate),
                        jc.GetMonth(firstDate), jc.GetYear(firstDate))
   End Sub
End Module
' The example displays the following output:
'       Last date (Gregorian): 28-02-1700
'       Last date (Julian): 18-2-1700
'       
'       First date (Gregorian): 01-03-1700
'       First date (Julian): 19-2-1700

每個都 CultureInfo 支援一組行事曆。 屬性 Calendar 會傳回文化特性的預設行事曆,而 OptionalCalendars 屬性會傳回陣列,其中包含文化特性支援的所有行事曆。 若要變更 所使用的 CultureInfo 行事曆,應用程式可以將 屬性設定 Calendar 為新的 Calendar

GetEra 只有在 GregorianCalendarDateTimeFormatInfo.Calendar 選取 且文化特性使用 「A.D」 作為紀元名稱時,才會忽略縮寫紀元名稱中的標點符號,也就是 「A.D」。

建構函式

GregorianCalendar()

使用預設的 GregorianCalendar 值來初始化 GregorianCalendarTypes 類別的新執行個體。

GregorianCalendar(GregorianCalendarTypes)

使用指定的 GregorianCalendarTypes 值,初始化 GregorianCalendar 類別的新執行個體。

欄位

ADEra

代表目前的紀元。 這個欄位為常數。

CurrentEra

表示目前曆法的目前紀元。 此欄位的值為 0。

(繼承來源 Calendar)

屬性

AlgorithmType

取得值,指出目前的月曆是以陽曆為主、以陰曆為主,還是同時包含兩種曆法。

AlgorithmType

取得值,指出目前的月曆是以陽曆為主、以陰曆為主,還是同時包含兩種曆法。

(繼承來源 Calendar)
CalendarType

取得或設定 GregorianCalendarTypes 值,代表目前 GregorianCalendar 的語言版本。

DaysInYearBeforeMinSupportedYear

取得 MinSupportedDateTime 屬性指定之年的前一年的天數。

(繼承來源 Calendar)
Eras

取得 GregorianCalendar 中的紀元清單。

IsReadOnly

取得值,指出 Calendar 物件是否為唯讀。

(繼承來源 Calendar)
MaxSupportedDateTime

取得受 GregorianCalendar 型別所支援的最晚日期和時間。

MaxSupportedDateTime

取得受 Calendar 物件所支援的最晚日期和時間。

(繼承來源 Calendar)
MinSupportedDateTime

取得 GregorianCalendar 型別所支援的最早日期和時間。

MinSupportedDateTime

取得受 Calendar 物件所支援的最早日期和時間。

(繼承來源 Calendar)
TwoDigitYearMax

取得或設定以二位數年份表示時,該 100 年範圍的最後一年。

方法

AddDays(DateTime, Int32)

傳回與指定 DateTime 相差指定日數的 DateTime

(繼承來源 Calendar)
AddHours(DateTime, Int32)

傳回與指定 DateTime 相差指定時數的 DateTime

(繼承來源 Calendar)
AddMilliseconds(DateTime, Double)

傳回與指定 DateTime 相差指定毫秒數的 DateTime

(繼承來源 Calendar)
AddMinutes(DateTime, Int32)

傳回與指定 DateTime 相差指定分鐘數的 DateTime

(繼承來源 Calendar)
AddMonths(DateTime, Int32)

傳回與指定 DateTime 相差指定月數的 DateTime

AddSeconds(DateTime, Int32)

傳回與指定 DateTime 相差指定秒數的 DateTime

(繼承來源 Calendar)
AddWeeks(DateTime, Int32)

傳回與指定 DateTime 相差指定週數的 DateTime

AddWeeks(DateTime, Int32)

傳回與指定 DateTime 相差指定週數的 DateTime

(繼承來源 Calendar)
AddYears(DateTime, Int32)

傳回與指定 DateTime 相差指定年數的 DateTime

Clone()

建立目前 Calendar 物件複本的新物件。

(繼承來源 Calendar)
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetDayOfMonth(DateTime)

傳回指定 DateTime 中月份的日期。

GetDayOfWeek(DateTime)

傳回指定 DateTime 中的星期。

GetDayOfYear(DateTime)

傳回指定之 DateTime 中一年中的日期。

GetDaysInMonth(Int32, Int32)

傳回目前紀元之指定月份和年份中的天數。

(繼承來源 Calendar)
GetDaysInMonth(Int32, Int32, Int32)

傳回在指定紀元的指定年份的指定月份中的日數。

GetDaysInYear(Int32)

傳回目前紀元之指定年份中的天數。

(繼承來源 Calendar)
GetDaysInYear(Int32, Int32)

傳回在指定紀元的指定年份中的日數。

GetEra(DateTime)

傳回指定 DateTime 中的紀元。

GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetHour(DateTime)

傳回指定 DateTime 中的小時值。

(繼承來源 Calendar)
GetLeapMonth(Int32)

計算指定年份的閏月。

(繼承來源 Calendar)
GetLeapMonth(Int32, Int32)

計算指定年份和紀元的閏月。

GetLeapMonth(Int32, Int32)

計算指定年份和紀元的閏月。

(繼承來源 Calendar)
GetMilliseconds(DateTime)

傳回指定 DateTime 中的毫秒值。

(繼承來源 Calendar)
GetMinute(DateTime)

傳回指定 DateTime 中的分鐘值。

(繼承來源 Calendar)
GetMonth(DateTime)

傳回指定 DateTime 中的月份。

GetMonthsInYear(Int32)

傳回目前紀元的指定年份中的月數。

(繼承來源 Calendar)
GetMonthsInYear(Int32, Int32)

傳回在指定紀元的指定年份中的月數。

GetSecond(DateTime)

傳回指定 DateTime 中的秒值。

(繼承來源 Calendar)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
GetWeekOfYear(DateTime, CalendarWeekRule, DayOfWeek)

傳回年份中的週,包含指定 DateTime 物件中的日期。

GetWeekOfYear(DateTime, CalendarWeekRule, DayOfWeek)

傳回年份中的週,其中包含指定之 DateTime 值中的日期。

(繼承來源 Calendar)
GetYear(DateTime)

傳回指定 DateTime 中的年份。

IsLeapDay(Int32, Int32, Int32)

判斷目前紀元中指定日期是否為閏日。

(繼承來源 Calendar)
IsLeapDay(Int32, Int32, Int32, Int32)

判斷指定紀元中指定的日期是否為閏日。

IsLeapMonth(Int32, Int32)

判斷目前紀元的指定年份中指定的月份是否為閏月。

(繼承來源 Calendar)
IsLeapMonth(Int32, Int32, Int32)

判斷指定紀元的指定年份中指定的月份是否為閏月。

IsLeapYear(Int32)

判斷目前紀元中指定的年份是否為閏年。

(繼承來源 Calendar)
IsLeapYear(Int32, Int32)

判斷指定紀元中指定的年份是否為閏年。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32)

傳回設定為目前紀元中指定日期和時間的 DateTime

(繼承來源 Calendar)
ToDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32)

傳回在指定紀元中設定為指定日期和時間的 DateTime

ToFourDigitYear(Int32)

將指定的年份轉換為 4 位數年份,方法是使用 TwoDigitYearMax 屬性以判斷適當的世紀。

ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

適用於

另請參閱