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 sonraki haftanın ilk gününden önce sona erdiğini gösterir. Değer 0'dır.

FirstFourDayWeek 2

Yılın ilk haftasının, belirlenen ilk gü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ünde 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 kültürün geçerli takvimi tarafından takvim haftası kuralını belirlemek için kullanılır. Numaralandırma değeri, yöntemine Calendar.GetWeekOfYear parametre olarak da kullanılır.

Takvim haftası kuralları, System.DayOfWeek bir değere bağlı olarak haftanın ilk gününü gösteren değere bağlıdır CalendarWeekRule . 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ğere dayalı FirstDay ilk haftanın bir ile yedi günü olabilir. Değeri temel FirstFullWeek alan ilk haftanın her zaman yedi günü vardır. Değeri temel FirstFourDayWeek alan ilk haftanın dört veya yedi günü olabilir.

Örneğin Gregoryen takvimde, yılın ilk gününün (1 Ocak) Salı günü olduğunu ve haftanın belirlenen 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, FirstFourDayWeek yılın ilk gününü (1 Ocak) yılın ilk haftasının başlangıcı olarak tanımlar çünkü 1 Ocak'tan sonraki Pazar'dan önceki güne kadar dört günden fazla gün vardır.

Tarih FirstDay FirstFullWeek FirstFourDayWeek
31 Aralık Önceki yılın geçen haftası Önceki yılın geçen haftası Önceki yılın geçen haftası
1 Ocak 1. Hafta Önceki yılın geçen haftası 1. Hafta
2 Ocak 1. Hafta Önceki yılın geçen haftası 1. Hafta
3 Ocak Per 1. Hafta Önceki yılın geçen haftası 1. Hafta
4 Ocak Cum 1. Hafta Önceki yılın geçen haftası 1. Hafta
Ocak 5 Sat 1. Hafta Önceki yılın geçen haftası 1. Hafta
6 Ocak Güneş 2. Hafta 1. Hafta 2. Hafta
7 Ocak Mon 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 haftanın belirlenen ilk gününün Pazar olduğunu varsayalım. Seçim, FirstFourDayWeek 1 Ocak ile sonraki Pazar gününden önceki güne kadar dört günden az olduğundan, ilk Pazar (3 Ocak) gününü 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 geçen haftası Önceki yılın geçen haftası Önceki yılın geçen haftası
1 Ocak Cum 1. Hafta Önceki yılın geçen haftası Önceki yılın geçen haftası
Ocak 2 Sat 1. Hafta Önceki yılın geçen haftası Önceki yılın geçen haftası
3 Ocak Güneş 2. Hafta 1. Hafta 1. Hafta
4 Ocak 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, haftaların nasıl atandığını belirlemek için ve DayOfWeek değerlerinin birlikte nasıl CalendarWeekRule kullanıldığı gösterilmektedir. Gregoryen takvimde, 2013 yılında yılın ilk günü (1 Ocak) Salı gününe denk gelir. Haftanın belirlenen ilk günü Pazar ise, ilk Pazar (6 Ocak) yılın ilk haftasının ilk günüdür ve Cumartesi (5 Ocak) ö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, yılın ilk haftası olarak Salı (1 Ocak) olarak tanımlar. 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ı DayOfWeek.Sunday haftanın ilk günü olarak uygulamakFirstFourDayWeek, 3 Ocak Pazar'ı yılın ilk haftasının başlangıcı yapar, çünkü 2010'da dört günden fazla günü olan 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. Farklar, Microsoft .NET'teki ISO 8601 Yılın Haftası biçiminde blog girdisinde ele alınmaktadır. .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 döndürür ve OptionalCalendars özelliği de 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.