Calendar クラス
週、月、年などの区分で時間を表します。
この型のすべてのメンバの一覧については、Calendar メンバ を参照してください。
System.Object
System.Globalization.Calendar
派生クラス
<Serializable>
MustInherit Public Class Calendar
[C#]
[Serializable]
public abstract class Calendar
[C++]
[Serializable]
public __gc __abstract class Calendar
[JScript]
public
Serializable
abstract class Calendar
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
解説
暦は、週、月、年などの単位に時間を分割します。区分の数、長さ、および開始点は、暦ごとに異なります。
あらゆる瞬間を、特定の暦を使用して一連の数値で表すことができます。たとえば、グレゴリオ暦では、春分を (0.0, 0, 46, 8, 20, 3, 1999) のように表すことができます。 Calendar の実装は、任意の DateTime 値を類似の一連の数値に割り当てることができます。また、 DateTime は、 Calendar と DateTimeFormatInfo から得られる情報を使用して、その一連の数値をテキスト表現に割り当てることができます。テキスト表現は、カルチャに依存するものもあれば (たとえば、英語 (米国) カルチャの "8:46 AM March 20th 1999 AD")、カルチャ非依存のものもあります (たとえば、ISO 8601 形式の "1999-03-20T08:46:00")。
Calendar 実装は、1 つ以上の時代 (年号) を定義できます。 Calendar クラスは、現在の時代 (年号) (CurrentEra) の値が 0 の場合、列挙整数として時代 (年号) を識別します。
地球が実際に太陽の周りを回る時間と暦年との差、または月が実際に地球の周りを回る時間と暦年との差を埋めるために、閏年の日数は標準の暦年の日数と異なっています。各 Calendar の実装では、閏年の定義が異なります。
一貫性のために、各間隔 (たとえば、最初の月) の最初の単位には、値 1 が割り当てられます。
System.Globalization 名前空間には、 GregorianCalendar 、 HebrewCalendar 、 HijriCalendar 、 JapaneseCalendar 、 JulianCalendar 、 KoreanCalendar 、 TaiwanCalendar 、 ThaiBuddhistCalendar など、 Calendar 実装があります。
使用例
[Visual Basic, C#, C++] Calendar クラスのメンバの使用例を次に示します。
Imports System
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 'Main
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 'DisplayValues
End Class 'SamplesCalendar
'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
[C#]
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
*/
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::Globalization;
void DisplayValues(Calendar* myCal, DateTime myDT) {
Console::WriteLine(S" Era: {0}", __box(myCal->GetEra(myDT)));
Console::WriteLine(S" Year: {0}", __box(myCal->GetYear(myDT)));
Console::WriteLine(S" Month: {0}", __box(myCal->GetMonth(myDT)));
Console::WriteLine(S" DayOfYear: {0}", __box(myCal->GetDayOfYear(myDT)));
Console::WriteLine(S" DayOfMonth: {0}", __box(myCal->GetDayOfMonth(myDT)));
Console::WriteLine(S" DayOfWeek: {0}", __box(myCal->GetDayOfWeek(myDT)));
Console::WriteLine(S" Hour: {0}", __box(myCal->GetHour(myDT)));
Console::WriteLine(S" Minute: {0}", __box(myCal->GetMinute(myDT)));
Console::WriteLine(S" Second: {0}", __box(myCal->GetSecond(myDT)));
Console::WriteLine(S" Milliseconds: {0}", __box(myCal->GetMilliseconds(myDT)));
Console::WriteLine();
}
int main() {
// Sets a DateTime to April 3, 2002 of the Gregorian calendar.
DateTime myDT = 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(S"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(S"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
*/
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
名前空間: System.Globalization
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
アセンブリ: Mscorlib (Mscorlib.dll 内)
参照
Calendar メンバ | System.Globalization 名前空間 | DateTime | DateTimeFormatInfo | GregorianCalendar | HebrewCalendar | HijriCalendar | JapaneseCalendar | JulianCalendar | KoreanCalendar | TaiwanCalendar | ThaiBuddhistCalendar