Calendar.GetWeekOfYear(DateTime, CalendarWeekRule, DayOfWeek) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt die Woche des Jahrs zurück, in die das Datum im angegebenen DateTime-Wert fällt.
public:
virtual int GetWeekOfYear(DateTime time, System::Globalization::CalendarWeekRule rule, DayOfWeek firstDayOfWeek);
public virtual int GetWeekOfYear (DateTime time, System.Globalization.CalendarWeekRule rule, DayOfWeek firstDayOfWeek);
abstract member GetWeekOfYear : DateTime * System.Globalization.CalendarWeekRule * DayOfWeek -> int
override this.GetWeekOfYear : DateTime * System.Globalization.CalendarWeekRule * DayOfWeek -> int
Public Overridable Function GetWeekOfYear (time As DateTime, rule As CalendarWeekRule, firstDayOfWeek As DayOfWeek) As Integer
Parameter
- time
- DateTime
Ein Datums- und Uhrzeitwert.
- rule
- CalendarWeekRule
Ein Enumerationswert, der eine Kalenderwoche definiert.
- firstDayOfWeek
- DayOfWeek
Ein Enumerationswert, der den ersten Tag der Woche darstellt.
Gibt zurück
Eine positive ganze Zahl, die die Woche des Jahres darstellt, in die das im time
-Parameter angegebene Datum fällt.
Ausnahmen
time
ist früher als MinSupportedDateTime oder später als MaxSupportedDateTime.
- oder -
firstDayOfWeek
ist kein gültiger DayOfWeek -Wert.
- oder -
rule
ist kein gültiger CalendarWeekRule -Wert.
Beispiele
Das folgende Codebeispiel zeigt, wie das Ergebnis von GetWeekOfYear je FirstDayOfWeek nach und CalendarWeekRule verwendet variiert. Wenn das angegebene Datum der letzte Tag des Jahres ist, GetWeekOfYear gibt die Gesamtzahl der Wochen in diesem Jahr zurück.
using namespace System;
using namespace System::Globalization;
int main()
{
// Gets the Calendar instance associated with a CultureInfo.
CultureInfo^ myCI = gcnew CultureInfo( "en-US" );
Calendar^ myCal = myCI->Calendar;
// Gets the DTFI properties required by GetWeekOfYear.
CalendarWeekRule myCWR = myCI->DateTimeFormat->CalendarWeekRule;
DayOfWeek myFirstDOW = myCI->DateTimeFormat->FirstDayOfWeek;
// Displays the number of the current week relative to the beginning of the year.
Console::WriteLine( "The CalendarWeekRule used for the en-US culture is {0}.", myCWR );
Console::WriteLine( "The FirstDayOfWeek used for the en-US culture is {0}.", myFirstDOW );
Console::WriteLine( "Therefore, the current week is Week {0} of the current year.", myCal->GetWeekOfYear( DateTime::Now, myCWR, myFirstDOW ) );
// Displays the total number of weeks in the current year.
DateTime LastDay = System::DateTime( DateTime::Now.Year, 12, 31 );
Console::WriteLine( "There are {0} weeks in the current year ( {1}).", myCal->GetWeekOfYear( LastDay, myCWR, myFirstDOW ), LastDay.Year );
}
/*
This code produces the following output. Results vary depending on the system date.
The CalendarWeekRule used for the en-US culture is FirstDay.
The FirstDayOfWeek used for the en-US culture is Sunday.
Therefore, the current week is Week 1 of the current year.
There are 53 weeks in the current year (2001).
*/
using System;
using System.Globalization;
public class SamplesCalendar {
public static void Main() {
// Gets the Calendar instance associated with a CultureInfo.
CultureInfo myCI = new CultureInfo("en-US");
Calendar myCal = myCI.Calendar;
// Gets the DTFI properties required by GetWeekOfYear.
CalendarWeekRule myCWR = myCI.DateTimeFormat.CalendarWeekRule;
DayOfWeek myFirstDOW = myCI.DateTimeFormat.FirstDayOfWeek;
// Displays the number of the current week relative to the beginning of the year.
Console.WriteLine( "The CalendarWeekRule used for the en-US culture is {0}.", myCWR );
Console.WriteLine( "The FirstDayOfWeek used for the en-US culture is {0}.", myFirstDOW );
Console.WriteLine( "Therefore, the current week is Week {0} of the current year.", myCal.GetWeekOfYear( DateTime.Now, myCWR, myFirstDOW ));
// Displays the total number of weeks in the current year.
DateTime LastDay = new System.DateTime( DateTime.Now.Year, 12, 31 );
Console.WriteLine( "There are {0} weeks in the current year ({1}).", myCal.GetWeekOfYear( LastDay, myCWR, myFirstDOW ), LastDay.Year );
}
}
/*
This code produces the following output. Results vary depending on the system date.
The CalendarWeekRule used for the en-US culture is FirstDay.
The FirstDayOfWeek used for the en-US culture is Sunday.
Therefore, the current week is Week 1 of the current year.
There are 53 weeks in the current year (2001).
*/
Imports System.Globalization
Public Class SamplesCalendar
Public Shared Sub Main()
' Gets the Calendar instance associated with a CultureInfo.
Dim myCI As New CultureInfo("en-US")
Dim myCal As Calendar = myCI.Calendar
' Gets the DTFI properties required by GetWeekOfYear.
Dim myCWR As CalendarWeekRule = myCI.DateTimeFormat.CalendarWeekRule
Dim myFirstDOW As DayOfWeek = myCI.DateTimeFormat.FirstDayOfWeek
' Displays the number of the current week relative to the beginning of the year.
Console.WriteLine("The CalendarWeekRule used for the en-US culture is {0}.", myCWR)
Console.WriteLine("The FirstDayOfWeek used for the en-US culture is {0}.", myFirstDOW)
Console.WriteLine("Therefore, the current week is Week {0} of the current year.", myCal.GetWeekOfYear(DateTime.Now, myCWR, myFirstDOW))
' Displays the total number of weeks in the current year.
Dim LastDay = New System.DateTime(DateTime.Now.Year, 12, 31)
Console.WriteLine("There are {0} weeks in the current year ({1}).", myCal.GetWeekOfYear(LastDay, myCWR, myFirstDOW), LastDay.Year)
End Sub
End Class
'This code produces the following output. Results vary depending on the system date.
'
'The CalendarWeekRule used for the en-US culture is FirstDay.
'The FirstDayOfWeek used for the en-US culture is Sunday.
'Therefore, the current week is Week 1 of the current year.
'There are 53 weeks in the current year (2001).
Hinweise
Diese Methode kann verwendet werden, um die Anzahl der Wochen im Jahr zu bestimmen, indem Sie auf den letzten Tag des Jahres festlegen time
.
Das DateTimeFormatInfo Objekt für eine bestimmte Kultur, die den von der DateTimeFormatInfo.Calendar -Eigenschaft angegebenen Kalender verwendet, enthält die folgenden kulturspezifischen Werte, die für die rule
Parameter und firstDayOfWeek
verwendet werden können:
Die DateTimeFormatInfo.FirstDayOfWeek -Eigenschaft enthält den standard ersten Wochentag, der für den
firstDayOfWeek
Parameter verwendet werden kann.Die DateTimeFormatInfo.CalendarWeekRule -Eigenschaft enthält die Standardregel für Kalenderwochen, die für den
rule
Parameter verwendet werden kann.
Hinweis
Dies entspricht nicht genau iso 8601. Die Unterschiede werden im Blogeintrag ISO 8601 Week of Year-Format in Microsoft .NET erläutert. Beginnen Sie mit .NET Core 3.0, ISOWeek.GetYear und ISOWeek.GetWeekOfYear lösen Sie dieses Problem.
Im folgenden Beispiel wird das Objekt der aktuellen Kultur DateTimeFormatInfo verwendet, um zu bestimmen, dass sich der 1. Januar 2011 in der ersten Woche des Jahres im gregorianischen Kalender befindet.
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo;
DateTime date1 = new DateTime(2011, 1, 1);
Calendar cal = dfi.Calendar;
Console.WriteLine("{0:d}: Week {1} ({2})", date1,
cal.GetWeekOfYear(date1, dfi.CalendarWeekRule,
dfi.FirstDayOfWeek),
cal.ToString().Substring(cal.ToString().LastIndexOf(".") + 1));
}
}
// The example displays the following output:
// 1/1/2011: Week 1 (GregorianCalendar)
Imports System.Globalization
Module Example
Public Sub Main()
Dim dfi As DateTimeFormatInfo = DateTimeFormatInfo.CurrentInfo
Dim date1 As Date = #1/1/2011#
Dim cal As Calendar = dfi.Calendar
Console.WriteLine("{0:d}: Week {1} ({2})", date1,
cal.GetWeekOfYear(date1, dfi.CalendarWeekRule,
dfi.FirstDayOfWeek),
cal.ToString().Substring(cal.ToString().LastIndexOf(".") + 1))
End Sub
End Module
' The example displays the following output:
' 1/1/2011: Week 1 (GregorianCalendar)
Bei einigen Kalendern löst ein Aufruf der GetWeekOfYear -Methode eine für bestimmte Kombinationen von rule
und firstDayOfWeek
-Werten ausArgumentOutOfRangeException, auch wenn time
das von der Eigenschaft dieses Kalenders MinSupportedDateTime zurückgegebene Datum größer ist. In der folgenden Tabelle sind die betroffenen Kalender, die spezifischen rule
Werte und der Bereich der frühesten unterstützten Werte aufgeführt time
. Der spezifische Mindestwert DateTime hängt vom Wert des firstDayOfWeek
Parameters ab.
Kalender | CalendarWeekRule-Wert | Gregorianisches Datum (M/TT/JJJJ) | Datum im Kalender (M/TT/JJJJ) |
---|---|---|---|
ChineseLunisolarCalendar | FirstFullWeek | 19.02.1901 bis 25.02.1901 | 1.1.1901 bis 1.7.1901 |
ChineseLunisolarCalendar | FirstFourDayWeek | 19.02.1901 bis 22.02.1901 | 1/01/1901 bis 1/04/1901 |
HebrewCalendar | FirstDay | 9/17/1583 | 1/01/5344 |
HebrewCalendar | FirstFullWeek | 17.09.1583 bis 23.09.1583 | 1/01/5344 bis 1/07/5344 |
HebrewCalendar | FirstFourDayWeek | 17.09.1583 bis 20.09.1583 | 1/01/5344 bis 1/04/5344 |
HijriCalendar | FirstFullWeek | 7/18/0622 bis 7/24/0622 | 1/01/0001 bis 1/07/0001 |
HijriCalendar | FirstFourDayWeek | 18.07.0622 bis 21.06.0622 | 1/01/0001 bis 1/04/0001 |
JapaneseLunisolarCalendar | FirstFullWeek | 28.1.1960 bis 2.03.1960 | 1/01/35 bis 1/07/0035 |
JapaneseLunisolarCalendar | FirstFourDayWeek | 28.1.1960 bis 31.1960 | 01.01.0035 bis 1.04.0035 |
JulianCalendar | FirstFullWeek | 01.01.0001 bis 1.05.0001 | 1/03/0001 bis 1/07/0001 |
JulianCalendar | FirstFourDayWeek | 1/01/0001 bis 1/02/0001 | 1/03/0001 bis 1/04/0001 |
KoreanLunisolarCalendar | FirstFullWeek | 14.02.0918 bis 2.20.0918 | 1/01/0918 bis 1/07/0918 |
KoreanLunisolarCalendar | FirstFourDayWeek | 2/14/0918 bis 2/17/0918 | 1/01/0918 bis 1/04/0918 |
PersianCalendar | FirstFullWeek | 21.03.0622 bis 27.06.0622 | 1/01/0001 bis 1/07/0001 |
PersianCalendar | FirstFourDayWeek | 21.03.0622 bis 24.06.0622 | 1/01/0001 bis 1/04/0001 |
TaiwanLunisolarCalendar | FirstFullWeek | 2/18/1912 bis 2/24/1912 | 1/01/0001 bis 1/07/0001 |
TaiwanLunisolarCalendar | FirstFourDayWeek | 18.2.1912 bis 21.02.1912 | 1/01/0001 bis 1/04/0001 |
UmAlQuraCalendar | FirstFullWeek | 30.4.1900 bis 5.06.1900 | 1/01/1318 bis 1/07/1318 |
UmAlQuraCalendar | FirstFourDayWeek | 30.4.1900 bis 5.03.1900 | 1/01/1318 bis 1/04/1318 |