CalendarWeekRule Sabit listesi

Tanım

Yılın ilk haftasını belirlemek için farklı kurallar tanımlar.

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
Devralma
CalendarWeekRule
Öznitelikler

Alanlar

FirstDay 0

Yılın ilk haftasının yılın ilk günü başladığını ve belirlenen ilk günden önce sona erdiğini gösterir. Değer 0'dır.

FirstFourDayWeek 2

Yılın ilk haftasının, belirlenen haftanın ilk gününden dört veya daha fazla gün önce olan ilk hafta olduğunu gösterir. Değer 2'dir.

FirstFullWeek 1

Yılın ilk haftasının, yılın ilk günü veya sonrasında, belirlenen ilk haftanın ilk gününde başladığını gösterir. Değer 1'dir.

Açıklamalar

Numaralandırmanın CalendarWeekRule bir üyesi özelliği tarafından DateTimeFormatInfo.CalendarWeekRule döndürülür ve takvim haftası kuralını belirlemek için kültürün geçerli takvimi tarafından kullanılır. Numaralandırma değeri, yöntemine Calendar.GetWeekOfYear parametre olarak da kullanılır.

Takvim haftası kuralları, bir CalendarWeekRule değere System.DayOfWeek bağlı olarak haftanın ilk gününü gösteren değere bağlıdır. DateTimeFormatInfo.FirstDayOfWeek özelliği bir kültür için varsayılan değeri sağlar, ancak herhangi bir DayOfWeek değer yönteminde Calendar.GetWeekOfYear haftanın ilk günü olarak belirtilebilir.

Değeri temel alan FirstDay ilk haftanın bir ile yedi günü olabilir. Değeri temel alan FirstFullWeek ilk haftanın her zaman yedi günü vardır. Değeri temel FirstFourDayWeek alan ilk haftanın dört ile yedi günü olabilir.

Örneğin, Gregoryen takviminde, yılın ilk gününün (1 Ocak) salı gününe denk geldiğini ve belirlenen haftanın ilk gününün Pazar olduğunu varsayalım. Seçim, FirstFullWeek ilk Pazar (6 Ocak) gününü yılın ilk haftasının başlangıcı olarak tanımlar. Yılın ilk beş günü, önceki yılın son haftasının bir parçası olarak kabul edilir. Buna karşılık, 1 Ocak ile sonraki Pazar gününden önceki gün arasındaki dört günden fazla olduğundan, FirstFourDayWeek seçim yılın ilk gününü (1 Ocak) yılın ilk haftasının başlangıcı olarak tanımlar.

Tarih FirstDay FirstFullWeek FirstFourDayWeek
Aralık 31 Mon Önceki yılın son haftası Önceki yılın son haftası Önceki yılın son haftası
1 Ocak 1. Hafta Önceki yılın son haftası 1. Hafta
2 Ocak 1. Hafta Önceki yılın son haftası 1. Hafta
3 Ocak Per 1. Hafta Önceki yılın son haftası 1. Hafta
4 Ocak Cum 1. Hafta Önceki yılın son haftası 1. Hafta
Ocak 5 Sat 1. Hafta Önceki yılın son haftası 1. Hafta
6 Ocak Güneş 2. Hafta 1. Hafta 2. Hafta
7 Ocak 2010 2. Hafta 1. Hafta 2. Hafta
8 Ocak 2. Hafta 1. Hafta 2. Hafta
9 Ocak 2. Hafta 1. Hafta 2. Hafta
10 Ocak Per 2. Hafta 1. Hafta 2. Hafta
11 Ocak Cum 2. Hafta 1. Hafta 2. Hafta
Ocak 12 Sat 2. Hafta 1. Hafta 2. Hafta

Yılın ilk gününün (1 Ocak) Cuma gününe denk geldiği ve belirlenen ilk günün Pazar olduğunu varsayalım. FirstFourDayWeek 1 Ocak'tan sonraki Pazar gününden önceki güne kadar dört günden az olduğu için seçim, ilk Pazar 'ı (3 Ocak) yılın ilk haftasının başlangıcı olarak tanımlar.

Tarih FirstDay FirstFullWeek FirstFourDayWeek
31 Aralık Per Önceki yılın son haftası Önceki yılın son haftası Önceki yılın son haftası
1 Ocak Cum 1. Hafta Önceki yılın son haftası Önceki yılın son haftası
Ocak 2 Sat 1. Hafta Önceki yılın son haftası Önceki yılın son haftası
3 Ocak Güneş 2. Hafta 1. Hafta 1. Hafta
Oca 4 Mon 2. Hafta 1. Hafta 1. Hafta
5 Ocak 2. Hafta 1. Hafta 1. Hafta
6 Ocak 2. Hafta 1. Hafta 1. Hafta
7 Ocak Per 2. Hafta 1. Hafta 1. Hafta
8 Ocak Cum 2. Hafta 1. Hafta 1. Hafta
Ocak 9 Sat 2. Hafta 1. Hafta 1. Hafta

Aşağıdaki örnekte, ve DayOfWeek değerlerinin CalendarWeekRule haftaların nasıl atandığını belirlemek için birlikte nasıl kullanıldığı gösterilmektedir. Gregoryen takvimde, 2013'te yılın ilk günü (1 Ocak) Salı gününe denk gelir. Belirlenen haftanın ilk günü Pazar ise, ilk Pazar (6 Ocak) yılın ilk haftasının ilk günüdür ve 5 Ocak Cumartesi günü önceki yılın elli üçüncü haftasına aittir. Takvim haftası kuralını FirstFourDayWeek , 1 Ocak Salı ile 6 Ocak Pazar arasında dört günden fazla olduğundan, Salı (1 Ocak) öğesini yılın ilk haftasının başlangıcı olarak tanımlayarak değiştirme. Bu kural kullanıldığında, 5 Ocak yılın ilk haftasına aittir. 2010'da, 1 Ocak'ın Cuma gününe denk geldiği bir yıl için, kuralın DayOfWeek.Sunday haftanın ilk günü olarak uygulanması FirstFourDayWeek 3 Ocak Pazar'ı yılın ilk haftasının başlangıcı yapar, çünkü 2010'da dört günden fazla gün içeren ilk hafta 3-9 Ocak'tır.

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

Not

Bu, ISO 8601 ile tam olarak eşlenmez. Farklılıklar , Microsoft .NET'te ISO 8601 Yılın Haftası biçiminde blog girdisinde ele alınıyor. .NET Core 3.0'dan ISOWeek.GetYearISOWeek.GetWeekOfYear başlayarak bu sorunu çözün.

Her CultureInfo nesne bir takvim kümesini destekler. Calendar özelliği kültür için varsayılan takvimi, özelliği ise OptionalCalendars kültür tarafından desteklenen tüm takvimleri içeren bir dizi döndürür. tarafından CultureInfokullanılan takvimi değiştirmek için özelliğini CultureInfo.DateTimeFormat yeni Calendarbir olarak ayarlayınCalendar.

Şunlara uygulanır

Ayrıca bkz.