Calendar 類別

定義

代表劃分的時間,例如週、月和年。

public ref class Calendar abstract
public ref class Calendar abstract : ICloneable
public abstract class Calendar
public abstract class Calendar : ICloneable
[System.Serializable]
public abstract class Calendar
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class Calendar : ICloneable
type Calendar = class
type Calendar = class
    interface ICloneable
[<System.Serializable>]
type Calendar = class
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Calendar = class
    interface ICloneable
Public MustInherit Class Calendar
Public MustInherit Class Calendar
Implements ICloneable
繼承
Calendar
衍生
屬性
實作

範例

下列程式碼範例示範 類別的成員 Calendar

using namespace System;
using namespace System::Globalization;
void DisplayValues( Calendar^ myCal, DateTime myDT )
{
   Console::WriteLine( "   Era: {0}", myCal->GetEra( myDT ) );
   Console::WriteLine( "   Year: {0}", myCal->GetYear( myDT ) );
   Console::WriteLine( "   Month: {0}", myCal->GetMonth( myDT ) );
   Console::WriteLine( "   DayOfYear: {0}", myCal->GetDayOfYear( myDT ) );
   Console::WriteLine( "   DayOfMonth: {0}", myCal->GetDayOfMonth( myDT ) );
   Console::WriteLine( "   DayOfWeek: {0}", myCal->GetDayOfWeek( myDT ) );
   Console::WriteLine( "   Hour: {0}", myCal->GetHour( myDT ) );
   Console::WriteLine( "   Minute: {0}", myCal->GetMinute( myDT ) );
   Console::WriteLine( "   Second: {0}", myCal->GetSecond( myDT ) );
   Console::WriteLine( "   Milliseconds: {0}", myCal->GetMilliseconds( myDT ) );
   Console::WriteLine();
}

int main()
{
   
   // Sets a DateTime to April 3, 2002 of the Gregorian calendar.
   DateTime myDT = DateTime(2002,4,3,gcnew GregorianCalendar);
   
   // Uses the default calendar of the InvariantCulture.
   Calendar^ myCal = CultureInfo::InvariantCulture->Calendar;
   
   // Displays the values of the DateTime.
   Console::WriteLine( "April 3, 2002 of the Gregorian calendar:" );
   DisplayValues( myCal, myDT );
   
   // Adds 5 to every component of the DateTime.
   myDT = myCal->AddYears( myDT, 5 );
   myDT = myCal->AddMonths( myDT, 5 );
   myDT = myCal->AddWeeks( myDT, 5 );
   myDT = myCal->AddDays( myDT, 5 );
   myDT = myCal->AddHours( myDT, 5 );
   myDT = myCal->AddMinutes( myDT, 5 );
   myDT = myCal->AddSeconds( myDT, 5 );
   myDT = myCal->AddMilliseconds( myDT, 5 );
   
   // Displays the values of the DateTime.
   Console::WriteLine( "After adding 5 to each component of the DateTime:" );
   DisplayValues( myCal, myDT );
}

/*
This code produces the following output.

April 3, 2002 of the Gregorian calendar:
Era:          1
Year:         2002
Month:        4
DayOfYear:    93
DayOfMonth:   3
DayOfWeek:    Wednesday
Hour:         0
Minute:       0
Second:       0
Milliseconds: 0

After adding 5 to each component of the DateTime:
Era:          1
Year:         2007
Month:        10
DayOfYear:    286
DayOfMonth:   13
DayOfWeek:    Saturday
Hour:         5
Minute:       5
Second:       5
Milliseconds: 5

*/
using System;
using System.Globalization;

public class SamplesCalendar  {

   public static void Main()  {

      // Sets a DateTime to April 3, 2002 of the Gregorian calendar.
      DateTime myDT = new DateTime( 2002, 4, 3, new GregorianCalendar() );

      // Uses the default calendar of the InvariantCulture.
      Calendar myCal = CultureInfo.InvariantCulture.Calendar;

      // Displays the values of the DateTime.
      Console.WriteLine( "April 3, 2002 of the Gregorian calendar:" );
      DisplayValues( myCal, myDT );

      // Adds 5 to every component of the DateTime.
      myDT = myCal.AddYears( myDT, 5 );
      myDT = myCal.AddMonths( myDT, 5 );
      myDT = myCal.AddWeeks( myDT, 5 );
      myDT = myCal.AddDays( myDT, 5 );
      myDT = myCal.AddHours( myDT, 5 );
      myDT = myCal.AddMinutes( myDT, 5 );
      myDT = myCal.AddSeconds( myDT, 5 );
      myDT = myCal.AddMilliseconds( myDT, 5 );

      // Displays the values of the DateTime.
      Console.WriteLine( "After adding 5 to each component of the DateTime:" );
      DisplayValues( myCal, myDT );
   }

   public static void DisplayValues( Calendar myCal, DateTime myDT )  {
      Console.WriteLine( "   Era:          {0}", myCal.GetEra( myDT ) );
      Console.WriteLine( "   Year:         {0}", myCal.GetYear( myDT ) );
      Console.WriteLine( "   Month:        {0}", myCal.GetMonth( myDT ) );
      Console.WriteLine( "   DayOfYear:    {0}", myCal.GetDayOfYear( myDT ) );
      Console.WriteLine( "   DayOfMonth:   {0}", myCal.GetDayOfMonth( myDT ) );
      Console.WriteLine( "   DayOfWeek:    {0}", myCal.GetDayOfWeek( myDT ) );
      Console.WriteLine( "   Hour:         {0}", myCal.GetHour( myDT ) );
      Console.WriteLine( "   Minute:       {0}", myCal.GetMinute( myDT ) );
      Console.WriteLine( "   Second:       {0}", myCal.GetSecond( myDT ) );
      Console.WriteLine( "   Milliseconds: {0}", myCal.GetMilliseconds( myDT ) );
      Console.WriteLine();
   }
}


/*
This code produces the following output.

April 3, 2002 of the Gregorian calendar:
   Era:          1
   Year:         2002
   Month:        4
   DayOfYear:    93
   DayOfMonth:   3
   DayOfWeek:    Wednesday
   Hour:         0
   Minute:       0
   Second:       0
   Milliseconds: 0

After adding 5 to each component of the DateTime:
   Era:          1
   Year:         2007
   Month:        10
   DayOfYear:    286
   DayOfMonth:   13
   DayOfWeek:    Saturday
   Hour:         5
   Minute:       5
   Second:       5
   Milliseconds: 5

*/
Imports System.Globalization


Public Class SamplesCalendar   

   Public Shared Sub Main()

      ' Sets a DateTime to April 3, 2002 of the Gregorian calendar.
      Dim myDT As New DateTime(2002, 4, 3, New GregorianCalendar())

      ' Uses the default calendar of the InvariantCulture.
      Dim myCal As Calendar = CultureInfo.InvariantCulture.Calendar

      ' Displays the values of the DateTime.
      Console.WriteLine("April 3, 2002 of the Gregorian calendar:")
      DisplayValues(myCal, myDT)

      ' Adds 5 to every component of the DateTime.
      myDT = myCal.AddYears(myDT, 5)
      myDT = myCal.AddMonths(myDT, 5)
      myDT = myCal.AddWeeks(myDT, 5)
      myDT = myCal.AddDays(myDT, 5)
      myDT = myCal.AddHours(myDT, 5)
      myDT = myCal.AddMinutes(myDT, 5)
      myDT = myCal.AddSeconds(myDT, 5)
      myDT = myCal.AddMilliseconds(myDT, 5)

      ' Displays the values of the DateTime.
      Console.WriteLine("After adding 5 to each component of the DateTime:")
      DisplayValues(myCal, myDT)

   End Sub

   Public Shared Sub DisplayValues(myCal As Calendar, myDT As DateTime)
      Console.WriteLine("   Era:          {0}", myCal.GetEra(myDT))
      Console.WriteLine("   Year:         {0}", myCal.GetYear(myDT))
      Console.WriteLine("   Month:        {0}", myCal.GetMonth(myDT))
      Console.WriteLine("   DayOfYear:    {0}", myCal.GetDayOfYear(myDT))
      Console.WriteLine("   DayOfMonth:   {0}", myCal.GetDayOfMonth(myDT))
      Console.WriteLine("   DayOfWeek:    {0}", myCal.GetDayOfWeek(myDT))
      Console.WriteLine("   Hour:         {0}", myCal.GetHour(myDT))
      Console.WriteLine("   Minute:       {0}", myCal.GetMinute(myDT))
      Console.WriteLine("   Second:       {0}", myCal.GetSecond(myDT))
      Console.WriteLine("   Milliseconds: {0}", myCal.GetMilliseconds(myDT))
      Console.WriteLine()
   End Sub

End Class


'This code produces the following output.
'
'April 3, 2002 of the Gregorian calendar:
'   Era:          1
'   Year:         2002
'   Month:        4
'   DayOfYear:    93
'   DayOfMonth:   3
'   DayOfWeek:    Wednesday
'   Hour:         0
'   Minute:       0
'   Second:       0
'   Milliseconds: 0
'
'After adding 5 to each component of the DateTime:
'   Era:          1
'   Year:         2007
'   Month:        10
'   DayOfYear:    286
'   DayOfMonth:   13
'   DayOfWeek:    Saturday
'   Hour:         5
'   Minute:       5
'   Second:       5
'   Milliseconds: 5

備註

行事曆會將時間分成單位,例如周、月和年。 每個行事曆中的除數、長度和開始數會有所不同。

注意

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

任何時間點都可以使用特定行事歷來表示為一組數值。 例如,Gregorian 行事曆中的頂點 equinox 發生在 (1999、3、20、8、46、0、0.0) ,也就是 1999 年 3 月 20 日 C.E.8:46:00:0.0。 的 Calendar 實作可以將特定行事曆範圍中的任何日期對應至類似的數值集合,而且 DateTime 可以使用 和 DateTimeFormatInfo 的資訊 Calendar ,將這類數值集合對應至文字標記法。 文字標記法可以區分文化特性,例如,ISO 8601 格式的 「8:46 AM 20th 1999 AD」 或不區分文化特性,例如「1999-03-20T08:46:00」。

Calendar 作可以定義一或多個紀元。 類別 Calendar 會將紀元識別為列舉整數,其中目前的紀元 () CurrentEra 值為 0。

重要

日本曆法的紀元是以天皇的統治為基礎,因此有變更是正常的。 例如,2019 年 5 月 1 日之後,JapaneseCalendarJapaneseLunisolarCalendar 中將開始使用「令和」。 此變更對使用這些日曆的所有應用程式都有影響。 如需詳細資訊,以及判斷您的應用程式是否受到影響,請參閱 在 .NET 的日曆中處理新紀元。 如需在 Windows 系統上測試應用程式以確保其整備時間變更的相關資訊,請參閱 準備您的應用程式以進行日文紀元變更。 如需 .NET 中支援多個紀元的行事曆功能,以及使用支援多個紀元的行事歷時的最佳做法,請參閱 使用紀元

為了構成日曆年度與地球繞著太陽旋轉的實際時間,或月球繞地球旋轉的實際時間之間的差異,閏年與標準行事歷年份的天數不同。 每個實作都會 Calendar 以不同的方式定義閏年。

為了一致性,每個間隔中的第一個單位 (第一個月,例如) 指派值 1。

命名空間 System.Globalization 包含下列 Calendar 實作:

建構函式

Calendar()

初始化 Calendar 類別的新執行個體。

欄位

CurrentEra

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

屬性

AlgorithmType

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

DaysInYearBeforeMinSupportedYear

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

Eras

當在衍生類別中覆寫時,取得目前曆法中的紀元清單。

IsReadOnly

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

MaxSupportedDateTime

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

MinSupportedDateTime

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

TwoDigitYearMax

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

方法

AddDays(DateTime, Int32)

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

AddHours(DateTime, Int32)

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

AddMilliseconds(DateTime, Double)

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

AddMinutes(DateTime, Int32)

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

AddMonths(DateTime, Int32)

當在衍生類別中覆寫時,傳回與指定 DateTime 相差指定月數的 DateTime

AddSeconds(DateTime, Int32)

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

AddWeeks(DateTime, Int32)

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

AddYears(DateTime, Int32)

當在衍生類別中覆寫時,傳回與指定 DateTime 相差指定年數的 DateTime

Clone()

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

Equals(Object)

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

(繼承來源 Object)
GetDayOfMonth(DateTime)

當在衍生類別中覆寫時,傳回指定 DateTime 中月份的日期。

GetDayOfWeek(DateTime)

當在衍生類別中覆寫時,傳回指定 DateTime 中的星期。

GetDayOfYear(DateTime)

當在衍生類別中覆寫時,傳回指定 DateTime 中年份的日期。

GetDaysInMonth(Int32, Int32)

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

GetDaysInMonth(Int32, Int32, Int32)

在衍生類別中覆寫時,傳回指定月份、年份和紀元中的天數。

GetDaysInYear(Int32)

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

GetDaysInYear(Int32, Int32)

在衍生類別中覆寫時,傳回指定年份和紀元中的天數。

GetEra(DateTime)

當在衍生類別中覆寫時,傳回指定 DateTime 的紀元。

GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetHour(DateTime)

傳回指定 DateTime 中的小時值。

GetLeapMonth(Int32)

計算指定年份的閏月。

GetLeapMonth(Int32, Int32)

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

GetMilliseconds(DateTime)

傳回指定 DateTime 中的毫秒值。

GetMinute(DateTime)

傳回指定 DateTime 中的分鐘值。

GetMonth(DateTime)

當在衍生類別中覆寫時,傳回指定 DateTime 中的月份。

GetMonthsInYear(Int32)

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

GetMonthsInYear(Int32, Int32)

當在衍生類別中覆寫時,傳回指定紀元的指定年份中月數。

GetSecond(DateTime)

傳回指定 DateTime 中的秒值。

GetType()

取得目前執行個體的 Type

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

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

GetYear(DateTime)

當在衍生類別中覆寫時,傳回指定 DateTime 中的年份。

IsLeapDay(Int32, Int32, Int32)

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

IsLeapDay(Int32, Int32, Int32, Int32)

當在衍生類別中覆寫時,判斷指定紀元中的指定日期是否為閏日。

IsLeapMonth(Int32, Int32)

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

IsLeapMonth(Int32, Int32, Int32)

當在衍生類別中覆寫時,判斷指定紀元的指定年份中指定的月份是否為閏月。

IsLeapYear(Int32)

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

IsLeapYear(Int32, Int32)

當在衍生類別中覆寫時,判斷指定紀元中指定的年份是否為閏年。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ReadOnly(Calendar)

傳回指定之 Calendar 物件的唯讀版本。

ToDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32)

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

ToDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32)

當在衍生類別中覆寫時,傳回設定為指定紀元中指定的日期和時間的 DateTime

ToFourDigitYear(Int32)

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

ToString()

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

(繼承來源 Object)

適用於

另請參閱