CalendarWeekRule CalendarWeekRule CalendarWeekRule CalendarWeekRule Enum

Definizione

Definisce regole diverse per determinare la prima settimana dell'anno.Defines different rules for determining the first week of the year.

public enum class CalendarWeekRule
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum CalendarWeekRule
type CalendarWeekRule = 
Public Enum CalendarWeekRule
Ereditarietà
CalendarWeekRuleCalendarWeekRuleCalendarWeekRuleCalendarWeekRule
Attributi

Campi

FirstDay FirstDay FirstDay FirstDay 0

Indica che la prima settimana dell'anno inizia con il primo giorno dell'anno e termina prima del successivo primo giorno della settimana designato.Indicates that the first week of the year starts on the first day of the year and ends before the following designated first day of the week. Il valore è 0.The value is 0.

FirstFourDayWeek FirstFourDayWeek FirstFourDayWeek FirstFourDayWeek 2

Indica che la prima settimana dell'anno è la prima settimana con quattro o più giorni prima del primo giorno della settimana designato.Indicates that the first week of the year is the first week with four or more days before the designated first day of the week. Il valore è 2.The value is 2.

FirstFullWeek FirstFullWeek FirstFullWeek FirstFullWeek 1

Indica che la prima settimana dell'anno inizia con la prima occorrenza del primo giorno della settimana designato in corrispondenza o dopo il primo giorno dell'anno.Indicates that the first week of the year begins on the first occurrence of the designated first day of the week on or after the first day of the year. Il valore è 1.The value is 1.

Commenti

Un membro dell'enumerazione CalendarWeekRule viene restituito dalla proprietà DateTimeFormatInfo.CalendarWeekRule e viene utilizzato dal calendario corrente delle impostazioni cultura per determinare la regola relativa alle settimane del calendario.A member of the CalendarWeekRule enumeration is returned by the DateTimeFormatInfo.CalendarWeekRule property and is used by the culture's current calendar to determine the calendar week rule. Il valore dell'enumerazione viene anche utilizzato come parametro per il metodo Calendar.GetWeekOfYear.The enumeration value is also used as a parameter to the Calendar.GetWeekOfYear method.

Le regole relative alle settimane del calendario dipendono dal valore System.DayOfWeek, che indica il primo giorno della settimana, nonché dal valore CalendarWeekRule.Calendar week rules depend on the System.DayOfWeek value that indicates the first day of the week in addition to depending on a CalendarWeekRule value. Il DateTimeFormatInfo.FirstDayOfWeek proprietà fornisce il valore predefinito per le impostazioni cultura, ma eventuali DayOfWeek valore può essere specificato come primo giorno della settimana nel Calendar.GetWeekOfYear (metodo).The DateTimeFormatInfo.FirstDayOfWeek property provides the default value for a culture, but any DayOfWeek value can be specified as the first day of the week in the Calendar.GetWeekOfYear method.

La prima settimana in base al valore FirstDay può avere uno a sette giorni.The first week based on the FirstDay value can have one to seven days. La prima settimana basata sul valore FirstFullWeek sempre ha sette giorni.The first week based on the FirstFullWeek value always has seven days. La prima settimana in base al valore FirstFourDayWeek può avere quattro di sette giorni.The first week based on the FirstFourDayWeek value can have four to seven days.

Nel calendario gregoriano, ad esempio, si supponga che il primo giorno dell'anno (1 gennaio) cade di martedì e il primo giorno della settimana designato è domenica.For example, in the Gregorian calendar, suppose that the first day of the year (January 1) falls on a Tuesday and the designated first day of the week is Sunday. Selezione FirstFullWeek definisce la prima domenica (6 gennaio) come l'inizio della prima settimana dell'anno.Selecting FirstFullWeek defines the first Sunday (January 6) as the beginning of the first week of the year. I primi cinque giorni dell'anno sono considerati parte dell'ultima settimana dell'anno precedente.The first five days of the year are considered part of the last week of the previous year. Al contrario, selezionando FirstFourDayWeek definisce il primo giorno dell'anno (1 gennaio) come l'inizio della prima settimana dell'anno, poiché sono presenti più di quattro giorni, dal 1 ° gennaio e il giorno precedente seguenti domenica.In contrast, selecting FirstFourDayWeek defines the first day of the year (January 1) as the beginning of the first week of the year because there are more than four days from January 1 to the day before the following Sunday.

DataDate FirstDayFirstDay FirstFullWeekFirstFullWeek FirstFourDayWeekFirstFourDayWeek
Lunedì 31 dicDec 31 Mon Ultima settimana dell'anno precedenteLast week of the previous year Ultima settimana dell'anno precedenteLast week of the previous year Ultima settimana dell'anno precedenteLast week of the previous year
Martedì 1 gennaioJan 1 Tue Settimana 1Week 1 Ultima settimana dell'anno precedenteLast week of the previous year Settimana 1Week 1
Mercoledì 2 gennaioJan 2 Wed Settimana 1Week 1 Ultima settimana dell'anno precedenteLast week of the previous year Settimana 1Week 1
Jan 3 ThuJan 3 Thu Settimana 1Week 1 Ultima settimana dell'anno precedenteLast week of the previous year Settimana 1Week 1
Venerdì 4Jan 4 Fri Settimana 1Week 1 Ultima settimana dell'anno precedenteLast week of the previous year Settimana 1Week 1
Rimasta Gen 5Jan 5 Sat Settimana 1Week 1 Ultima settimana dell'anno precedenteLast week of the previous year Settimana 1Week 1
Domenica 6 gennaioJan 6 Sun Settimana 2Week 2 Settimana 1Week 1 Settimana 2Week 2
7 gennaio MESJan 7 Mon Settimana 2Week 2 Settimana 1Week 1 Settimana 2Week 2
Martedì 8 gennaioJan 8 Tue Settimana 2Week 2 Settimana 1Week 1 Settimana 2Week 2
Mer 9 gennaioJan 9 Wed Settimana 2Week 2 Settimana 1Week 1 Settimana 2Week 2
Jan 10 ThuJan 10 Thu Settimana 2Week 2 Settimana 1Week 1 Settimana 2Week 2
Venerdì 11Jan 11 Fri Settimana 2Week 2 Settimana 1Week 1 Settimana 2Week 2
Rimasta gen 12Jan 12 Sat Settimana 2Week 2 Settimana 1Week 1 Settimana 2Week 2

Si supponga che il primo giorno dell'anno (1 gennaio) cade di venerdì e il primo giorno della settimana designato è domenica.Suppose the first day of the year (January 1) falls on a Friday and the designated first day of the week is Sunday. Selezione FirstFourDayWeek definisce la prima domenica (3 gennaio) come l'inizio della prima settimana dell'anno poiché sono presenti meno di quattro giorni, dal 1 ° gennaio e il giorno precedente seguenti domenica.Selecting FirstFourDayWeek defines the first Sunday (January 3) as the beginning of the first week of the year because there are fewer than four days from January 1 to the day before the following Sunday.

DataDate FirstDayFirstDay FirstFullWeekFirstFullWeek FirstFourDayWeekFirstFourDayWeek
Gio 31 dicDec 31 Thu Ultima settimana dell'anno precedenteLast week of the previous year Ultima settimana dell'anno precedenteLast week of the previous year Ultima settimana dell'anno precedenteLast week of the previous year
Venerdì 1Jan 1 Fri Settimana 1Week 1 Ultima settimana dell'anno precedenteLast week of the previous year Ultima settimana dell'anno precedenteLast week of the previous year
Rimasta Gen 2Jan 2 Sat Settimana 1Week 1 Ultima settimana dell'anno precedenteLast week of the previous year Ultima settimana dell'anno precedenteLast week of the previous year
Domenica 3 gennaioJan 3 Sun Settimana 2Week 2 Settimana 1Week 1 Settimana 1Week 1
Gen 4 MESJan 4 Mon Settimana 2Week 2 Settimana 1Week 1 Settimana 1Week 1
Martedì 5 gennaioJan 5 Tue Settimana 2Week 2 Settimana 1Week 1 Settimana 1Week 1
Mercoledì 6 gennaioJan 6 Wed Settimana 2Week 2 Settimana 1Week 1 Settimana 1Week 1
Giovedì 7 gennaioJan 7 Thu Settimana 2Week 2 Settimana 1Week 1 Settimana 1Week 1
Venerdì 8Jan 8 Fri Settimana 2Week 2 Settimana 1Week 1 Settimana 1Week 1
Rimasta gen 9Jan 9 Sat Settimana 2Week 2 Settimana 1Week 1 Settimana 1Week 1

Nell'esempio seguente viene illustrato come i valori FirstDay e System.DayOfWeek vengono utilizzati insieme per determinare come vengono assegnate le settimane.The following example illustrates how the FirstDay and System.DayOfWeek values are used together to determine how weeks are assigned. Nel calendario gregoriano il primo giorno dell'anno (1 gennaio) nel 2013 cade di martedì.In the Gregorian calendar, the first day of the year (January 1) in 2013 falls on a Tuesday. Se il primo giorno della settimana è domenica, la prima domenica (6 gennaio) è il primo giorno della prima settimana dell'anno e sabato (5 gennaio) appartiene alla cinquantatreesima settimana dell'anno precedente.If the designated first day of the week is Sunday, the first Sunday (January 6) is the first day of the first week of the year, and Saturday (January 5) belongs to the fifty-third week of the previous year. Modifica la regola di settimana di calendario a FirstFourDayWeek definisce martedì (1 gennaio) come l'inizio della prima settimana dell'anno, perché sono presenti più di quattro giorni tra martedì 1 gennaio e domenica 6 gennaio.Changing the calendar week rule to FirstFourDayWeek defines Tuesday (January 1) as the beginning of the first week of the year, because there are more than four days between Tuesday, January 1, and Sunday, January 6. Utilizzando questa regola, il 5 gennaio appartiene alla prima settimana dell'anno.Using this rule, January 5 belongs to the first week of the year. 2010, un anno in cui l'1 gennaio cade di venerdì, applicare la regola FirstFourDayWeek con System.DayOfWeek come primo giorno della settimana è domenica 3 gennaio l'inizio della prima settimana dell'anno, perché la prima settimana nel 2010 che dispone di più di quattro giorni è Janu ARI 3 a 9.For 2010, a year in which January 1 falls on a Friday, applying the FirstFourDayWeek rule with System.DayOfWeek as the first day of the week makes Sunday, January 3 the beginning of the first week of the year, because the first week in 2010 that has more than four days is January 3 through 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

Nota

Ciò non corrispondono esattamente alle ISO 8601.This does not map exactly to ISO 8601. Le differenze vengono discusse nella voce del blog formato ISO 8601 settimana dell'anno in Microsoft .NET.The differences are discussed in the blog entry ISO 8601 Week of Year format in Microsoft .NET. A partire da .NET Core 3.0 ISOWeek.GetYear e ISOWeek.GetWeekOfYear risolvere questo problema.Starting with .NET Core 3.0, ISOWeek.GetYear and ISOWeek.GetWeekOfYear solve this problem.

Ogni CultureInfo oggetto supporta un set di calendari.Each CultureInfo object supports a set of calendars. Il Calendar proprietà restituisce il calendario predefinito per le impostazioni cultura e OptionalCalendars proprietà restituisce una matrice contenente tutti i calendari supportati dalle impostazioni cultura.The Calendar property returns the default calendar for the culture, and the OptionalCalendars property returns an array containing all the calendars supported by the culture. Per modificare il calendario utilizzato da un CultureInfo, l'applicazione deve impostare la Calendar proprietà di CultureInfo.DateTimeFormat a un nuovo CalendarWeekRule.FirstFourDayWeek.To change the calendar used by a CultureInfo, the application should set the Calendar property of CultureInfo.DateTimeFormat to a new CalendarWeekRule.FirstFourDayWeek.

Si applica a

Vedi anche