CalendarWeekRule Enumeration
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.
Definiert verschiedene Regeln für die Bestimmung der ersten Woche des Jahres.
public enum class CalendarWeekRule
public enum CalendarWeekRule
[System.Serializable]
public enum CalendarWeekRule
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum CalendarWeekRule
type CalendarWeekRule =
[<System.Serializable>]
type CalendarWeekRule =
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type CalendarWeekRule =
Public Enum CalendarWeekRule
- Vererbung
- Attribute
Felder
FirstDay | 0 | Gibt an, dass die erste Woche des Jahres am ersten Tag des Jahres beginnt und vor dem folgenden, als erstem Wochentag bestimmten Tag endet. Der Wert ist "0". |
FirstFourDayWeek | 2 | Gibt an, dass die erste Woche des Jahres am ersten Tag des Jahres beginnt und vor dem folgenden, als erstem Wochentag bestimmten Tag endet. Der Wert ist "2". |
FirstFullWeek | 1 | Gibt an, dass die erste Woche des Jahres beim ersten Vorkommen des Tages, der als erster Wochentag festgelegt wurde, an oder nach dem ersten Tag des Jahres beginnt. Der Wert ist "1". |
Hinweise
Ein Member der CalendarWeekRule Enumeration wird von der DateTimeFormatInfo.CalendarWeekRule -Eigenschaft zurückgegeben und vom aktuellen Kalender der Kultur verwendet, um die Kalenderwochenregel zu bestimmen. Der Enumerationswert wird auch als Parameter für die Calendar.GetWeekOfYear -Methode verwendet.
Kalenderwochenregeln hängen System.DayOfWeek vom Wert ab, der den ersten Tag der Woche angibt, zusätzlich zu einem CalendarWeekRule Wert. Die DateTimeFormatInfo.FirstDayOfWeek -Eigenschaft stellt den Standardwert für eine Kultur bereit, aber jeder DayOfWeek Wert kann als erster Wochentag in der Calendar.GetWeekOfYear -Methode angegeben werden.
Die erste Woche, die auf dem FirstDay
Wert basiert, kann ein bis sieben Tage dauern. Die erste Woche, die auf dem FirstFullWeek
Wert basiert, hat immer sieben Tage. Die erste Woche, die auf dem FirstFourDayWeek
Wert basiert, kann vier bis sieben Tage dauern.
Nehmen Sie beispielsweise im gregorianischen Kalender an, dass der erste Tag des Jahres (1. Januar) auf einen Dienstag fällt und der angegebene erste Tag der Woche der Sonntag ist. Die Auswahl FirstFullWeek
definiert den ersten Sonntag (6. Januar) als Beginn der ersten Woche des Jahres. Die ersten fünf Tage des Jahres werden als Teil der letzten Woche des Vorjahres betrachtet. Im Gegensatz dazu definiert die Auswahl FirstFourDayWeek
den ersten Tag des Jahres (1. Januar) als Beginn der ersten Woche des Jahres, da es mehr als vier Tage vom 1. Januar bis zum Tag vor dem folgenden Sonntag gibt.
Datum | FirstDay | FirstFullWeek | FirstFourDayWeek |
---|---|---|---|
Dez 31 Mo | Letzte Woche des Vorjahres | Letzte Woche des Vorjahres | Letzte Woche des Vorjahres |
1. Januar Di | Woche 1 | Letzte Woche des Vorjahres | Woche 1 |
2. Januar Mid | Woche 1 | Letzte Woche des Vorjahres | Woche 1 |
3. Januar Do | Woche 1 | Letzte Woche des Vorjahres | Woche 1 |
4. Januar Fr | Woche 1 | Letzte Woche des Vorjahres | Woche 1 |
5. Januar Sa | Woche 1 | Letzte Woche des Vorjahres | Woche 1 |
6. Januar So | Woche 2 | Woche 1 | Woche 2 |
7. Januar Mo | Woche 2 | Woche 1 | Woche 2 |
8. Januar Di | Woche 2 | Woche 1 | Woche 2 |
9. Januar Mid | Woche 2 | Woche 1 | Woche 2 |
10. Januar Do | Woche 2 | Woche 1 | Woche 2 |
11. Januar Fr | Woche 2 | Woche 1 | Woche 2 |
12. Januar Sa | Woche 2 | Woche 1 | Woche 2 |
Angenommen, der erste Tag des Jahres (1. Januar) fällt auf einen Freitag und der angegebene erste Tag der Woche ist Sonntag. Die Auswahl FirstFourDayWeek
definiert den ersten Sonntag (3. Januar) als Beginn der ersten Woche des Jahres, da es weniger als vier Tage vom 1. Januar bis zum Tag vor dem folgenden Sonntag gibt.
Datum | FirstDay | FirstFullWeek | FirstFourDayWeek |
---|---|---|---|
Dez 31 Do | Letzte Woche des Vorjahres | Letzte Woche des Vorjahres | Letzte Woche des Vorjahres |
1. Januar Fr | Woche 1 | Letzte Woche des Vorjahres | Letzte Woche des Vorjahres |
2. Januar Sa | Woche 1 | Letzte Woche des Vorjahres | Letzte Woche des Vorjahres |
Jan 3 So | Woche 2 | Woche 1 | Woche 1 |
Jan 4 Mo | Woche 2 | Woche 1 | Woche 1 |
Jan 5 Di | Woche 2 | Woche 1 | Woche 1 |
Jan 6 Mi | Woche 2 | Woche 1 | Woche 1 |
7. Januar Do | Woche 2 | Woche 1 | Woche 1 |
Jan 8 Fr | Woche 2 | Woche 1 | Woche 1 |
9. Januar Sa | Woche 2 | Woche 1 | Woche 1 |
Im folgenden Beispiel wird veranschaulicht, wie die CalendarWeekRule Werte und DayOfWeek zusammen verwendet werden, um zu bestimmen, wie Wochen zugewiesen werden. Im gregorianischen Kalender fällt der erste Tag des Jahres (1. Januar) im Jahr 2013 auf einen Dienstag. Wenn der erste Tag der Woche Sonntag ist, ist der erste Sonntag (6. Januar) der erste Tag der ersten Woche des Jahres, und Samstag (5. Januar) gehört zur dreiundfünfzigste Woche des Vorjahres. Wenn Sie die Kalenderwochenregel so FirstFourDayWeek
ändern, wird Dienstag (1. Januar) als Beginn der ersten Woche des Jahres definiert, da zwischen Dienstag, 1. Januar und Sonntag, 6. Januar, mehr als vier Tage liegen. Mit dieser Regel gehört der 5. Januar zur ersten Woche des Jahres. Für 2010, ein Jahr, in dem der 1. Januar auf einen Freitag fällt, macht die Anwendung der FirstFourDayWeek
Regel mit DayOfWeek.Sunday als erster Tag der Woche Sonntag, 3. Januar den Beginn der ersten Woche des Jahres, da die erste Woche im Jahr 2010, die mehr als vier Tage hat, vom 3. bis 9. Januar ist.
using System;
using System.Globalization;
public class Example
{
static Calendar cal = new GregorianCalendar();
public static void Main()
{
DateTime date = new DateTime(2013, 1, 5);
DayOfWeek firstDay = DayOfWeek.Sunday;
CalendarWeekRule rule;
rule = CalendarWeekRule.FirstFullWeek;
ShowWeekNumber(date, rule, firstDay);
rule = CalendarWeekRule.FirstFourDayWeek;
ShowWeekNumber(date, rule, firstDay);
Console.WriteLine();
date = new DateTime(2010, 1, 3);
ShowWeekNumber(date, rule, firstDay);
}
private static void ShowWeekNumber(DateTime dat, CalendarWeekRule rule,
DayOfWeek firstDay)
{
Console.WriteLine("{0:d} with {1:F} rule and {2:F} as first day of week: week {3}",
dat, rule, firstDay, cal.GetWeekOfYear(dat, rule, firstDay));
}
}
// The example displays the following output:
// 1/5/2013 with FirstFullWeek rule and Sunday as first day of week: week 53
// 1/5/2013 with FirstFourDayWeek rule and Sunday as first day of week: week 1
//
// 1/3/2010 with FirstFourDayWeek rule and Sunday as first day of week: week 1
Imports System.Globalization
Module Example
Dim cal As New GregorianCalendar()
Public Sub Main()
Dim dat As Date = #01/05/2013#
Dim firstDay As DayOfWeek = DayOfWeek.Sunday
Dim rule As CalendarWeekRule
rule = CalendarWeekRule.FirstFullWeek
ShowWeekNumber(dat, rule, firstDay)
rule = CalendarWeekRule.FirstFourDayWeek
ShowWeekNumber(dat, rule, firstDay)
Console.WriteLine()
dat = #1/03/2010#
ShowWeekNumber(dat, rule, firstDay)
End Sub
Private Sub ShowWeekNumber(dat As Date, rule As CalendarWeekRule,
firstDay As DayOfWeek)
Console.WriteLine("{0:d} with {1:F} rule and {2:F} as first day of week: week {3}",
dat, rule, firstDay, cal.GetWeekOfYear(dat, rule, firstDay))
End Sub
End Module
' The example displays the following output:
' 1/5/2013 with FirstFullWeek rule and Sunday as first day of week: week 53
' 1/5/2013 with FirstFourDayWeek rule and Sunday as first day of week: week 1
'
' 1/3/2010 with FirstFourDayWeek rule and Sunday as first day of week: week 1
Hinweis
Dies entspricht nicht genau iso 8601. Die Unterschiede werden im Blogeintrag ISO 8601 Week of Year format in Microsoft .NET erläutert. Ab .NET Core 3.0 können ISOWeek.GetYear Sie ISOWeek.GetWeekOfYear dieses Problem lösen.
Jedes CultureInfo Objekt unterstützt eine Reihe von Kalendern. Die Calendar -Eigenschaft gibt den Standardkalender für die Kultur zurück, und die OptionalCalendars -Eigenschaft gibt ein Array zurück, das alle von der Kultur unterstützten Kalender enthält. Um den von einem CultureInfoverwendeten Kalender zu ändern, legen Sie die Calendar -Eigenschaft von CultureInfo.DateTimeFormat auf einen neuen Calendarfest.