CalendarWeekRule Sabit listesi
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
- Ö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.