TimeZoneInfo.TransitionTime.Week Özellik
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.
Saat değişikliğinin gerçekleştiği ayın haftasını alır.
public:
property int Week { int get(); };
public int Week { get; }
member this.Week : int
Public ReadOnly Property Week As Integer
Özellik Değeri
Saat değişikliğinin gerçekleştiği ayın haftası.
Örnekler
Aşağıdaki örnek, yerel bilgisayarda bulunan saat dilimlerini numaralandırır ve tüm kayan tarih geçişleri için geçiş zamanı bilgilerini görüntüler. Zaman bilgileri, zaman değişikliğinin gerçekleştiği ayın haftasını içerir. Örnek ayrıca bir WeekOfMonth
tamsayı yerine özelliğin sıra değerini Week temsil eden bir dize görüntülemek için bir numaralandırma tanımlar.
private enum WeekOfMonth
{
First = 1,
Second = 2,
Third = 3,
Fourth = 4,
Last = 5
}
private void GetFloatingTransitionTimes()
{
ReadOnlyCollection<TimeZoneInfo> timeZones = TimeZoneInfo.GetSystemTimeZones();
foreach (TimeZoneInfo zone in timeZones)
{
TimeZoneInfo.AdjustmentRule[] adjustmentRules = zone.GetAdjustmentRules();
DateTimeFormatInfo dateInfo = CultureInfo.CurrentCulture.DateTimeFormat;
foreach (TimeZoneInfo.AdjustmentRule adjustmentRule in adjustmentRules)
{
TimeZoneInfo.TransitionTime daylightStart = adjustmentRule.DaylightTransitionStart;
if (! daylightStart.IsFixedDateRule)
Console.WriteLine("{0}, {1:d}-{2:d}: Begins at {3:t} on the {4} {5} of {6}.",
zone.StandardName,
adjustmentRule.DateStart,
adjustmentRule.DateEnd,
daylightStart.TimeOfDay,
((WeekOfMonth)daylightStart.Week).ToString(),
daylightStart.DayOfWeek.ToString(),
dateInfo.GetMonthName(daylightStart.Month));
TimeZoneInfo.TransitionTime daylightEnd = adjustmentRule.DaylightTransitionEnd;
if (! daylightEnd.IsFixedDateRule)
Console.WriteLine("{0}, {1:d}-{2:d}: Ends at {3:t} on the {4} {5} of {6}.",
zone.StandardName,
adjustmentRule.DateStart,
adjustmentRule.DateEnd,
daylightEnd.TimeOfDay,
((WeekOfMonth)daylightEnd.Week).ToString(),
daylightEnd.DayOfWeek.ToString(),
dateInfo.GetMonthName(daylightEnd.Month));
}
}
}
type WeekOfMonth =
| First = 1
| Second = 2
| Third = 3
| Fourth = 4
| Last = 5
let getFloatingTransitionTimes () =
let timeZones = TimeZoneInfo.GetSystemTimeZones()
for zone in timeZones do
let adjustmentRules = zone.GetAdjustmentRules()
let dateInfo = CultureInfo.CurrentCulture.DateTimeFormat
for adjustmentRule in adjustmentRules do
let daylightStart = adjustmentRule.DaylightTransitionStart
if not daylightStart.IsFixedDateRule then
printfn $"{zone.StandardName}, {adjustmentRule.DateStart:d}-{adjustmentRule.DateEnd:d}: Begins at {daylightStart.TimeOfDay:t} on the {enum<WeekOfMonth> daylightStart.Week} {daylightStart.DayOfWeek} of {dateInfo.GetMonthName daylightStart.Month}."
let daylightEnd = adjustmentRule.DaylightTransitionEnd
if not daylightEnd.IsFixedDateRule then
printfn $"{zone.StandardName}, {adjustmentRule.DateStart:d}-{adjustmentRule.DateEnd:d}: Ends at {daylightEnd.TimeOfDay:t} on the {enum<WeekOfMonth> daylightEnd.Week} {daylightEnd.DayOfWeek} of {dateInfo.GetMonthName daylightEnd.Month}."
Private Enum WeekOfMonth As Integer
First = 1
Second = 2
Third = 3
Fourth = 4
Last = 5
End Enum
Private Sub GetFloatingTransitionTimes()
Dim timeZones As ReadOnlyCollection(Of TimeZoneInfo) = TimeZoneInfo.GetSystemTimeZones()
For Each zone As TimeZoneInfo In timeZones
Dim adjustmentRules() As TimeZoneInfo.AdjustmentRule = zone.GetAdjustmentRules()
For Each adjustmentRule As TimeZoneInfo.AdjustmentRule in adjustmentRules
Dim daylightStart As TimeZoneInfo.TransitionTime = adjustmentRule.DaylightTransitionStart
If Not daylightStart.IsFixedDateRule Then
Console.WriteLine("{0}, {1:d}-{2:d}: Begins at {3:t} on the {4} {5} of {6}.", _
zone.StandardName, _
adjustmentRule.DateStart, _
adjustmentRule.DateEnd, _
daylightStart.TimeOfDay, _
CType(daylightStart.Week, WeekOfMonth).ToString(), _
daylightStart.DayOfWeek.ToString(), _
MonthName(daylightStart.Month))
End If
Dim daylightEnd As TimeZoneInfo.TransitionTime = adjustmentRule.DaylightTransitionEnd
If Not daylightEnd.IsFixedDateRule Then
Console.WriteLine("{0}, {1:d}-{2:d}: Ends at {3:t} on the {4} {5} of {6}.", _
zone.StandardName, _
adjustmentRule.DateStart, _
adjustmentRule.DateEnd, _
daylightEnd.TimeOfDay, _
CType(daylightEnd.Week, WeekOfMonth).ToString(), _
daylightEnd.DayOfWeek.ToString(), _
MonthName(daylightEnd.Month))
End If
Next
Next
End Sub
Açıklamalar
özelliğinin değeri yalnızca kayan Week tarih kurallarıyla yapılan zaman değişiklikleri için kullanılır. Geçerli değerler 1 ile 5 arasında olabilir.
Month özelliği, zaman değişikliğinin gerçekleştiği ayı tanımlar. özelliği, Week geçişin gerçekleştiği haftayı belirler. özelliği, DayOfWeek geçişin gerçekleştiği haftanın gününü tanımlar. özelliğinin Week değeri aşağıdaki tabloda gösterildiği gibi belirlenir.
Week özellik değeri | Geçiş şu şekilde gerçekleşir: |
---|---|
1 | değerinin DayOfWeek içindeki Monthilk oluşumu. |
2 | değerinin DayOfWeek içindeki Monthikinci oluşumu. |
3 | değerinin DayOfWeek içindeki Monthüçüncü oluşumu. |
4 | içindeki Monthdeğerin DayOfWeek dördüncü oluşumu. |
5 | değerinin DayOfWeek içindeki Monthson oluşumu. |
Örneğin, Mart ayının ilk Pazar günü bir geçiş gerçekleşirse, özelliğin Week değeri 1 olur. Mart ayının son Pazar günü gerçekleşirse, özelliğin Week değeri 5'tir.