CalendarWeekRule Énumération

Définition

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
CalendarWeekRule
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' CalendarWeekRule énumération 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 du calendrier. La valeur d’énumération est également utilisée comme paramètre de la Calendar.GetWeekOfYear méthode.

Les règles de semaine calendaire dépendent de la System.DayOfWeek valeur qui indique le premier jour de la semaine en plus de en fonction d’une CalendarWeekRule valeur. La DateTimeFormatInfo.FirstDayOfWeek propriété fournit la valeur par défaut pour une culture, mais toute 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 entre quatre et sept jours.

Par exemple, dans le calendrier grégorien, supposez que le premier jour de l’année (1er janvier) tombe un mardi et que le premier jour de la semaine désigné est dimanche. La sélection FirstFullWeek définit le premier dimanche (le 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. À l’inverse, FirstFourDayWeek la sélection définit le premier jour de l’année (1er janvier) comme 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 FirstDay FirstFullWeek FirstFourDayWeek
31 décembre 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 janvier Mar Semaine 1 Dernière semaine de l’année précédente Semaine 1
1er janvier Semaine 1 Dernière semaine de l’année précédente Semaine 1
Jeudi 3 janvier Semaine 1 Dernière semaine de l’année précédente Semaine 1
4 janvier vendredi Semaine 1 Dernière semaine de l’année précédente Semaine 1
5 janvier, SAT Semaine 1 Dernière semaine de l’année précédente Semaine 1
6 janvier Semaine 2 Semaine 1 Semaine 2
7 janvier Semaine 2 Semaine 1 Semaine 2
8 janvier Mar Semaine 2 Semaine 1 Semaine 2
9 janvier mer Semaine 2 Semaine 1 Semaine 2
10 Jan Semaine 2 Semaine 1 Semaine 2
11 janvier vendredi Semaine 2 Semaine 1 Semaine 2
12 janvier Semaine 2 Semaine 1 Semaine 2

Supposons que le premier jour de l’année (1er janvier) tombe un vendredi et que le premier jour de la semaine désigné est 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 FirstDay FirstFullWeek FirstFourDayWeek
Jeudi 31 décembre 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 janvier vendredi Semaine 1 Dernière semaine de l’année précédente Dernière semaine de l’année précédente
2 janvier, SAT Semaine 1 Dernière semaine de l’année précédente Dernière semaine de l’année précédente
3 janvier Semaine 2 Semaine 1 Semaine 1
4 janvier Semaine 2 Semaine 1 Semaine 1
5 janvier Mar Semaine 2 Semaine 1 Semaine 1
6 janvier Semaine 2 Semaine 1 Semaine 1
Jeudi 7 janvier Semaine 2 Semaine 1 Semaine 1
8 janvier vendredi Semaine 2 Semaine 1 Semaine 1
9 janvier, SAT Semaine 2 Semaine 1 Semaine 1

L’exemple suivant montre comment les CalendarWeekRule valeurs et DayOfWeek sont utilisées ensemble pour déterminer comment les semaines sont affectées. Dans le calendrier grégorien, le premier jour de l’année (1er janvier) de 2013 tombe le mardi. Si le premier jour désigné de la semaine est dimanche, le premier dimanche (le 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 de semaine du calendrier pour FirstFourDayWeek définit le mardi (1er janvier) comme début de la première semaine de l’année, car il existe plus de quatre jours entre le mardi 1er janvier et le dimanche 6 janvier. À l’aide de cette règle, le 5 janvier appartient à la première semaine de l’année. Pour 2010, une année au cours de laquelle le 1er janvier se situe le vendredi, l’application de la FirstFourDayWeek règle avec DayOfWeek.Sunday comme premier jour de la semaine rend le dimanche, le 3 janvier au début de la première semaine de l’année, car la première semaine du 2010 qui compte plus de quatre jours est comprise entre le 3 janvier et le 9.

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 à ISO 8601. Les différences sont présentées dans l’entrée de blog format ISO 8601 semaine du mois dans Microsoft .net. À compter de .NET Core 3,0, ISOWeek.GetYear et ISOWeek.GetWeekOfYear résoudre 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é retourne un tableau contenant tous les calendriers pris en charge par la culture. Pour modifier le calendrier utilisé par un CultureInfo , affectez Calendar à la propriété de la valeur CultureInfo.DateTimeFormat New Calendar .

S’applique à

Voir aussi