Calendar.AddMonths(DateTime, Int32) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
public:
abstract DateTime AddMonths(DateTime time, int months);
public abstract DateTime AddMonths (DateTime time, int months);
abstract member AddMonths : DateTime * int -> DateTime
Public MustOverride Function AddMonths (time As DateTime, months As Integer) As DateTime
Parametry
- months
- Int32
liczba miesięcy do dodania.
Zwraca
Wynik dodawania DateTime określonej liczby miesięcy do określonego DateTimeelementu .
Wyjątki
DateTime Wynik jest poza obsługiwanym zakresem tego kalendarza.
months
znajduje się poza obsługiwanym zakresem wartości zwracanej DateTime .
Przykłady
Poniższy przykład kodu przedstawia składowe Calendar klasy .
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
Uwagi
Wartość months
jest dodawana do określonego DateTimeelementu . Jeśli months
wartość jest ujemna, wynik DateTime jest wcześniejszy niż określony DateTime.
Część dnia wynikowego DateTime wpływa, jeśli wynikowy dzień nie jest prawidłowym dniem w wynikowym miesiącu wynikowego roku. Jest on zmieniany na ostatni prawidłowy dzień w wynikowym miesiącu wynikowego roku. Wpływ na część roku wynikowej DateTime ma wpływ, jeśli wynikowy miesiąc znajduje się poza rokiem określonego DateTime. Wpływ na część ery wynikowej DateTime ma wpływ, jeśli wynikowy rok jest poza erą określonego DateTime. Część czasu dnia wynikowego DateTime pozostaje taka sama jak określona DateTimewartość .
Załóżmy na przykład, że bieżący kalendarz ma 12 miesięcy, gdzie czwarty miesiąc ma 30 dni, a dziesiąty miesiąc ma 31 dni. Jeśli określony miesiąc jest dziesiątym miesiącem, określony dzień jest 31 dniem tego miesiąca, a wartość months
parametru wynosi 6, wynikowy rok jest jeden więcej niż określony rok, wynikowy miesiąc jest czwartym miesiącem, a wynikowy dzień to 30 dzień, czyli ostatni dzień wynikowego miesiąca.
Jeśli wartość parametru months
jest ujemna, wynik DateTime jest wcześniejszy niż określony DateTime.
Właściwość Kind zwracanej DateTime wartości zawsze jest DateTimeKind.Unspecifiedrówna . Właściwość parametru time
można zachowaćKind, wywołując metodę DateTime.SpecifyKind , jak pokazano w poniższym przykładzie.
returnTime = DateTime.SpecifyKind(cal.AddMonths(time, months), time.Kind);
returnTime = DateTime.SpecifyKind(cal.AddMonths(time, months), time.Kind)