문제

VBA의 날짜가 DST인지 여부를 알려주는 기능은 무엇입니까?

도움이 되었습니까?

해결책

비 전류 날짜 (DST 2007+) :

먼저 한 달에 특정 주간 수를 찾는 기능이 필요합니다.

Public Function NDow(Y As Integer, M As Integer, _
                N As Integer, DOW As Integer) As Date  

' Returns Date of Nth Day of the Week in Month  

NDow = DateSerial(Y, M, (8 - Weekday(DateSerial(Y, M, 1), _
              (DOW + 1) Mod 8)) + ((N - 1) * 7))  

End Function  

그런 다음 DST DAY와 다음 기능 호출을 확인할 수 있습니다.

가을 : Ndow (Year (Newdate), 11, 1, 1)
봄 : Ndow (Year (Newdate), 3, 2, 1)

현재 날짜 :

Windows API 기능 gettimezoneinformation을 호출하면 상태가있는 열거 (정수)를 반환합니다.

나는 Chip Pearson의 Great Excel 사이트에서 이것에 대한 코드를 얻었습니다.

피어슨의 사이트

다른 팁

유럽에서 일광 절약 시간을 설명하는 방법을 궁금해하는 사람 (중부 유럽 시간)을 위해 스크립트를 수정했습니다. 칩 피어슨. 3 월 마지막 일요일 (오전 2 시부 터 오전 3시)와 10 월 (오전 3 시부 터 오전 2시)는 시간 전환이 발생하는 날입니다.

다음 코드는 Excel에서 버튼의 클릭 이벤트입니다.

Dim dates As String
dates = "A1:A20"

For Each c In Worksheets("Sheet1").Range(dates).Cells
    If (IsDateWithinDST(c.Value)) Then
        c.Value = DateAdd("h", 1, c.Value)
    End If
Next

필요한 방법을 포함하는 모듈을 찾을 수 있습니다. 여기.

유럽의 DST에 대한 자세한 정보.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top