TimeZoneInfo.TransitionTime.Week Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera tydzień miesiąca, w którym następuje zmiana czasu.
public:
property int Week { int get(); };
public int Week { get; }
member this.Week : int
Public ReadOnly Property Week As Integer
Wartość właściwości
Tydzień miesiąca, w którym następuje zmiana czasu.
Przykłady
Poniższy przykład wylicza strefy czasowe znalezione na komputerze lokalnym i wyświetla informacje o czasie przejścia dla wszystkich przestawnych przejść daty. Informacje o czasie obejmują tydzień miesiąca, w którym następuje zmiana czasu. W przykładzie zdefiniowano WeekOfMonth
również wyliczenie, aby wyświetlić ciąg reprezentujący wartość porządkową właściwości, a nie liczbę Week całkowitą.
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
Uwagi
Wartość Week właściwości jest używana tylko w przypadku zmian czasu z regułami zmiennoprzecinkowych dat. Prawidłowe wartości mogą wahać się od 1 do 5.
Właściwość Month definiuje miesiąc, w którym następuje zmiana czasu. Właściwość Week określa tydzień, w którym następuje przejście. Właściwość DayOfWeek definiuje dzień tygodnia, w którym następuje przejście. Wartość Week właściwości jest określana, jak pokazano w poniższej tabeli.
Jeśli wartość właściwości Week jest następująca: | Przejście odbywa się w dniu |
---|---|
1 | Pierwsze wystąpienie wartości w elemecie DayOfWeek Month. |
2 | Drugie wystąpienie DayOfWeek wartości w pliku Month. |
3 | Trzecie wystąpienie wartości w elemecie DayOfWeek Month. |
4 | Czwarte wystąpienie wartości w Monthelemecie DayOfWeek . |
5 | Ostatnie wystąpienie wartości w elemecie DayOfWeek Month. |
Jeśli na przykład przejście nastąpi w pierwszą niedzielę marca, wartość Week właściwości to 1. Jeśli wystąpi w ostatnią niedzielę marca, wartość Week właściwości wynosi 5.