Partage via


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’é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.

S’applique à

Voir aussi