CalendarWeekRule Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Définit diverses règles déterminant la première semaine de l'année.
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
- Héritage
- Attributs
Champs
FirstDay | 0 | Indique que la première semaine de l’année commence le premier jour de l’année et se termine avant le jour suivant désigné comme premier jour de la semaine. La valeur est égale à 0. |
FirstFourDayWeek | 2 | Indique que la première semaine de l’année est la première semaine comptant quatre jours ou plus avant le jour désigné comme premier jour de la semaine. La valeur est égale à 2. |
FirstFullWeek | 1 | Indique que la première semaine de l’année commence à la première occurrence du jour désigné comme premier jour de la semaine, le premier jour de l’année ou après celui-ci. La valeur est égale à 1. |
Remarques
Un membre de l’énumération CalendarWeekRule est retourné par la DateTimeFormatInfo.CalendarWeekRule propriété et est utilisé par le calendrier actuel de la culture pour déterminer la règle de semaine civile. La valeur d’énumération est également utilisée comme paramètre de la Calendar.GetWeekOfYear méthode .
Les règles de semaine civile dépendent de la System.DayOfWeek valeur qui indique le premier jour de la semaine en plus de dépendre d’une CalendarWeekRule valeur. La DateTimeFormatInfo.FirstDayOfWeek propriété fournit la valeur par défaut d’une culture, mais n’importe quelle DayOfWeek valeur peut être spécifiée comme premier jour de la semaine dans la Calendar.GetWeekOfYear méthode.
La première semaine basée sur la FirstDay
valeur peut avoir un à sept jours. La première semaine basée sur la FirstFullWeek
valeur a toujours sept jours. La première semaine basée sur la FirstFourDayWeek
valeur peut avoir quatre à sept jours.
Par exemple, dans le calendrier grégorien, supposons que le premier jour de l’année (le 1er janvier) tombe un mardi et que le premier jour désigné de la semaine est le dimanche. FirstFullWeek
La sélection définit le premier dimanche (6 janvier) comme début de la première semaine de l’année. Les cinq premiers jours de l’année sont considérés comme faisant partie de la dernière semaine de l’année précédente. En revanche, la sélection FirstFourDayWeek
définit le premier jour de l’année (1er janvier) comme le début de la première semaine de l’année, car il y a plus de quatre jours entre le 1er janvier et le jour précédant le dimanche suivant.
Date | Premier jour | FirstFullWeek | FirstFourDayWeek |
---|---|---|---|
31 décembre lundi | Dernière semaine de l’année précédente | Dernière semaine de l’année précédente | Dernière semaine de l’année précédente |
Jan 1 Mar | Semaine 1 | Dernière semaine de l’année précédente | Semaine 1 |
2 janv. | Semaine 1 | Dernière semaine de l’année précédente | Semaine 1 |
Jan 3 Thu | Semaine 1 | Dernière semaine de l’année précédente | Semaine 1 |
4 janv. | Semaine 1 | Dernière semaine de l’année précédente | Semaine 1 |
Jan 5 Sam | Semaine 1 | Dernière semaine de l’année précédente | Semaine 1 |
Jan 6 Dim | Semaine 2 | Semaine 1 | Semaine 2 |
Jan 7 lundi | Semaine 2 | Semaine 1 | Semaine 2 |
Jan 8 Mar | Semaine 2 | Semaine 1 | Semaine 2 |
9 janvier Wed | Semaine 2 | Semaine 1 | Semaine 2 |
Jan 10 Thu | Semaine 2 | Semaine 1 | Semaine 2 |
11 janv. | Semaine 2 | Semaine 1 | Semaine 2 |
Jan 12 Sam | Semaine 2 | Semaine 1 | Semaine 2 |
Supposons que le premier jour de l’année (le 1er janvier) tombe un vendredi et que le premier jour désigné de la semaine est le dimanche. La sélection FirstFourDayWeek
définit le premier dimanche (3 janvier) comme début de la première semaine de l’année, car il y a moins de quatre jours entre le 1er janvier et le jour précédant le dimanche suivant.
Date | Premier jour | FirstFullWeek | FirstFourDayWeek |
---|---|---|---|
Déc 31 Jeu | Dernière semaine de l’année précédente | Dernière semaine de l’année précédente | Dernière semaine de l’année précédente |
1er janv. | Semaine 1 | Dernière semaine de l’année précédente | Dernière semaine de l’année précédente |
Jan 2 Sam | Semaine 1 | Dernière semaine de l’année précédente | Dernière semaine de l’année précédente |
Jan 3 Dim | Semaine 2 | Semaine 1 | Semaine 1 |
Jan 4 lundi | Semaine 2 | Semaine 1 | Semaine 1 |
Jan 5 Mar | Semaine 2 | Semaine 1 | Semaine 1 |
6 janv. Wed | Semaine 2 | Semaine 1 | Semaine 1 |
Jan 7 Thu | Semaine 2 | Semaine 1 | Semaine 1 |
8 janv. | Semaine 2 | Semaine 1 | Semaine 1 |
Jan 9 Sam | Semaine 2 | Semaine 1 | Semaine 1 |
L’exemple suivant montre comment les CalendarWeekRule valeurs et DayOfWeek sont utilisées ensemble pour déterminer la façon dont les semaines sont attribuées. Dans le calendrier grégorien, le premier jour de l’année (1er janvier) en 2013 tombe un mardi. Si le premier jour de la semaine désigné est le dimanche, le premier dimanche (6 janvier) est le premier jour de la première semaine de l’année et le samedi (5 janvier) appartient à la cinquante-troisième semaine de l’année précédente. La modification de la règle FirstFourDayWeek
de la semaine civile en définit le mardi (1er janvier) comme début de la première semaine de l’année, car il y a plus de quatre jours entre le mardi 1er janvier et le dimanche 6 janvier. En utilisant cette règle, le 5 janvier appartient à la première semaine de l’année. Pour 2010, année au cours de laquelle le 1er janvier tombe un vendredi, l’application de la FirstFourDayWeek
règle avec DayOfWeek.Sunday comme premier jour de la semaine fait du dimanche 3 janvier le début de la première semaine de l’année, car la première semaine de 2010 qui a plus de quatre jours est du 3 au 9 janvier.
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
Notes
Cela ne correspond pas exactement à la norme ISO 8601. Les différences sont abordées dans l’entrée de blog au format ISO 8601 Semaine de l’année dans Microsoft .NET. À partir de .NET Core 3.0, ISOWeek.GetYear et ISOWeek.GetWeekOfYear résolvez ce problème.
Chaque CultureInfo objet prend en charge un ensemble de calendriers. La Calendar propriété retourne le calendrier par défaut de la culture, et la OptionalCalendars propriété renvoie un tableau contenant tous les calendriers pris en charge par la culture. Pour modifier le calendrier utilisé par un CultureInfo, définissez la Calendar propriété de CultureInfo.DateTimeFormat sur un nouveau Calendar.