Calendar.AddMonths メソッド
派生クラスでオーバーライドされると、指定した DateTime から指定した月数が経過した後の DateTime を返します。
Public MustOverride Function AddMonths( _
ByVal time As DateTime, _ ByVal months As Integer _) As DateTime
[C#]
public abstract DateTime AddMonths(DateTimetime,intmonths);
[C++]
public: virtual DateTime AddMonths(DateTimetime,intmonths) = 0;
[JScript]
public abstract function AddMonths(
time : DateTime,months : int) : DateTime;
パラメータ
- time
月数を加算する対象の DateTime 。 - months
加算する月の数。
戻り値
指定した DateTime に指定した月数を加算した結果の DateTime 。
例外
例外の種類 | 条件 |
---|---|
ArgumentException | 結果として得られる DateTime がサポートされている範囲外の値です。 |
解説
結果として得られる日が結果の年の結果の月に対して有効な日でない場合は、結果として得られる DateTime の日付部分が影響を受けます。この日付は、結果の年の結果の月にとって有効な最後の日付に変更されます。結果として得られる月が、指定した DateTime の年の範囲外の場合、結果として得られる DateTime の年の部分に影響します。結果として得られる年が、指定した DateTime の時代 (年号) の範囲外の場合、結果として得られる DateTime の時代 (年号) の部分に影響します。結果として得られる DateTime の時刻の部分は、指定した DateTime の値と同じままです。
たとえば、現在の暦が 12 か月で構成されていて、4 月には 30 日、10 月には 31 日あるとします。指定した月が 10 月、指定した日がその月の 31 番目の日、および months パラメータの値が 6 である場合、結果として得られる年は指定した年より 1 大きく、月は 4 月、日はその月の最終日である 30 日になります。
months パラメータの値が負の場合、結果の DateTime は、指定した DateTime よりも前の値になります。
使用例
[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++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: 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
参照
Calendar クラス | Calendar メンバ | System.Globalization 名前空間 | System.DateTime | AddYears | AddWeeks | AddDays | AddHours | AddMinutes | AddSeconds | AddMilliseconds