다음을 통해 공유


TimeZoneInfo.TransitionTime.Week 속성

정의

시간 변경이 발생하는 월의 주를 가져옵니다.

public:
 property int Week { int get(); };
public int Week { get; }
member this.Week : int
Public ReadOnly Property Week As Integer

속성 값

시간 변경이 발생하는 월의 주입니다.

예제

다음 예제에서는 로컬 컴퓨터에 있는 표준 시간대를 열거 하 고 모든 부동 날짜 전환에 대 한 전환 시간 정보를 표시 합니다. 시간 정보에는 시간 변경이 발생하는 월의 주가 포함됩니다. 또한 이 예제에서는 정수가 아닌 속성의 서수 값을 나타내는 문자열을 Week 표시하는 열거형을 정의 WeekOfMonth 합니다.

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

설명

속성 값 Week 은 부동 날짜 규칙을 사용하는 시간 변경에만 사용됩니다. 유효한 값의 범위는 1에서 5까지입니다.

이 속성은 Month 시간 변경이 발생하는 월을 정의합니다. 이 속성은 Week 전환이 발생하는 주를 결정합니다. 이 속성은 DayOfWeek 전환이 발생하는 요일을 정의합니다. 속성 값 Week 은 다음 표와 같이 결정됩니다.

Week 속성 값이 전환은 다음에서 발생합니다.
1 에 있는 값의 DayOfWeek 첫 번째 항목입니다 Month.
2 에 있는 값의 DayOfWeek 두 번째 항목입니다 Month.
3 에 있는 값의 DayOfWeek 세 번째 항목입니다 Month.
4 에 있는 값의 DayOfWeek 네 번째 항목입니다 Month.
5 에 있는 값의 DayOfWeek 마지막 항목입니다 Month.

예를 들어 3월 첫째 일요일에 전환이 발생하는 경우 속성 값 Week 은 1입니다. 3월 마지막 일요일에 발생하는 경우 속성 값 Week 은 5입니다.

적용 대상

추가 정보