CalendarWeekRule Enum
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Definieert verschillende regels voor het bepalen van de eerste week van het jaar.
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
- Overname
- Kenmerken
Velden
| Name | Waarde | Description |
|---|---|---|
| FirstDay | 0 | Geeft aan dat de eerste week van het jaar begint op de eerste dag van het jaar en eindigt vóór de volgende eerste dag van de week. De waarde is 0. |
| FirstFullWeek | 1 | Geeft aan dat de eerste week van het jaar begint op het eerste exemplaar van de aangewezen eerste dag van de week op of na de eerste dag van het jaar. De waarde is 1. |
| FirstFourDayWeek | 2 | Geeft aan dat de eerste week van het jaar de eerste week is met vier of meer dagen vóór de aangewezen eerste dag van de week. De waarde is 2. |
Opmerkingen
Een lid van de CalendarWeekRule opsomming wordt geretourneerd door de DateTimeFormatInfo.CalendarWeekRule eigenschap en wordt gebruikt door de huidige agenda van de cultuur om de kalenderweekregel te bepalen. De opsommingswaarde wordt ook gebruikt als parameter voor de Calendar.GetWeekOfYear methode.
Kalenderweekregels zijn afhankelijk van de System.DayOfWeek waarde die de eerste dag van de week aangeeft, naast afhankelijk van een CalendarWeekRule waarde. De DateTimeFormatInfo.FirstDayOfWeek eigenschap biedt de standaardwaarde voor een cultuur, maar elke DayOfWeek waarde kan worden opgegeven als de eerste dag van de week in de Calendar.GetWeekOfYear methode.
De eerste week op basis van de FirstDay waarde kan één tot zeven dagen duren. De eerste week op basis van de FirstFullWeek waarde heeft altijd zeven dagen. De eerste week op basis van de FirstFourDayWeek waarde kan vier tot zeven dagen duren.
Stel dat in de Gregoriaanse kalender de eerste dag van het jaar (1 januari) op een dinsdag valt en de aangewezen eerste dag van de week zondag is. Als u FirstFullWeek selecteert, wordt de eerste zondag (6 januari) gedefinieerd als het begin van de eerste week van het jaar. De eerste vijf dagen van het jaar worden beschouwd als onderdeel van de vorige week van het vorige jaar. Als u daarentegen selecteert FirstFourDayWeek , wordt de eerste dag van het jaar (1 januari) gedefinieerd als het begin van de eerste week van het jaar, omdat er meer dan vier dagen zijn van 1 januari tot de dag vóór de volgende zondag.
| Date | FirstDay | FirstFullWeek | FirstFourDayWeek |
|---|---|---|---|
| 31 december | Vorige week van het vorige jaar | Vorige week van het vorige jaar | Vorige week van het vorige jaar |
| 1 jan 1 di | Week 1 | Vorige week van het vorige jaar | Week 1 |
| Jan 2 Wed | Week 1 | Vorige week van het vorige jaar | Week 1 |
| 3 januari do | Week 1 | Vorige week van het vorige jaar | Week 1 |
| 4 januari | Week 1 | Vorige week van het vorige jaar | Week 1 |
| 5 januari | Week 1 | Vorige week van het vorige jaar | Week 1 |
| 6 jan zon | Week 2 | Week 1 | Week 2 |
| 7 januari | Week 2 | Week 1 | Week 2 |
| 8 januari T/b | Week 2 | Week 1 | Week 2 |
| Jan 9 Wed | Week 2 | Week 1 | Week 2 |
| 10 januari do | Week 2 | Week 1 | Week 2 |
| 11 januari | Week 2 | Week 1 | Week 2 |
| 12 januari | Week 2 | Week 1 | Week 2 |
Stel dat de eerste dag van het jaar (1 januari) op een vrijdag valt en dat de eerste dag van de week zondag is. Als u FirstFourDayWeek selecteert, wordt de eerste zondag (3 januari) gedefinieerd als het begin van de eerste week van het jaar, omdat er minder dan vier dagen zijn van 1 januari tot de dag vóór de volgende zondag.
| Date | FirstDay | FirstFullWeek | FirstFourDayWeek |
|---|---|---|---|
| 31 december do | Vorige week van het vorige jaar | Vorige week van het vorige jaar | Vorige week van het vorige jaar |
| 1 januari | Week 1 | Vorige week van het vorige jaar | Vorige week van het vorige jaar |
| Jan 2 za | Week 1 | Vorige week van het vorige jaar | Vorige week van het vorige jaar |
| 3 jan zon | Week 2 | Week 1 | Week 1 |
| 4 januari | Week 2 | Week 1 | Week 1 |
| 5 januari t/a | Week 2 | Week 1 | Week 1 |
| 6 januari 100 | Week 2 | Week 1 | Week 1 |
| 7 jan do | Week 2 | Week 1 | Week 1 |
| 8 januari | Week 2 | Week 1 | Week 1 |
| Jan 9 za | Week 2 | Week 1 | Week 1 |
In het volgende voorbeeld ziet u hoe de CalendarWeekRule en DayOfWeek waarden samen worden gebruikt om te bepalen hoe weken worden toegewezen. In de Gregoriaanse kalender valt de eerste dag van het jaar (1 januari) in 2013 op een dinsdag. Als de eerste dag van de week zondag is, is de eerste zondag (6 januari) de eerste dag van de eerste week van het jaar en de zaterdag (5 januari) behoort tot de vijftig derde week van het vorige jaar. Als u de kalenderweekregel wijzigt om dinsdag (1 januari) te FirstFourDayWeek definiëren als het begin van de eerste week van het jaar, omdat er meer dan vier dagen tussen dinsdag 1 januari en zondag 6 zijn. Met deze regel behoort 5 januari tot de eerste week van het jaar. Voor 2010, een jaar waarin 1 januari valt op een vrijdag, waarbij de FirstFourDayWeek regel wordt DayOfWeek.Sunday toegepast als de eerste dag van de week zondag, 3 januari het begin van de eerste week van het jaar, omdat de eerste week in 2010 die meer dan vier dagen heeft, 3 tot en met 9 is.
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
Note
Dit is niet precies toegewezen aan ISO 8601. De verschillen worden besproken in het blogbericht ISO 8601 Week of Year in Microsoft .NET. Beginnend met .NET Core 3.0, ISOWeek.GetYear en ISOWeek.GetWeekOfYear dit probleem oplossen.
Elk CultureInfo object ondersteunt een set agenda's. De Calendar eigenschap retourneert de standaardkalender voor de cultuur en de OptionalCalendars eigenschap retourneert een matrix met alle agenda's die door de cultuur worden ondersteund. Als u de agenda wilt wijzigen die wordt gebruikt door een CultureInfo, stelt u de Calendar eigenschap van CultureInfo.DateTimeFormat in op een nieuwe Calendar.