VBA에서 일광 절약 시간을 어떻게 결정합니까?
-
02-07-2019 - |
문제
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
필요한 방법을 포함하는 모듈을 찾을 수 있습니다. 여기.
제휴하지 않습니다 StackOverflow