;공휴일과 일치하는지 검사
CheckHoliday(ToDay)
{
result := false
;음력 명절이나 임시공휴일이 있어서 직접 적어줘야 한다.
;한 자리 숫자는 앞에 0을 붙이면 제대로 작동되지 않음.
Arr := ["2020.12.25.", "2021.1.1.", "2021.2.11.", "2021.2.12.", "2021.2.13.", "2021.2.14.", "2021.3.1.", "2021.5.5.", "2021.5.19.", "2021.6.6.", "2021.8.15.", "2021.9.20.", "2021.9.21.", "2021.9.22.", "2021.10.3.", "2021.10.9.", "2021.12.25."]
Loop % Arr.MaxIndex()
{
if(ToDay = Arr[A_index])
{
result := true
break
}
}
return result
}
;요일이 주말인지 검사
CheckWeekend(uWday)
{
result := false
if(uWday > 7)
{
uWday := mod(uWday, 7) ;8 이상은 나누어서 나머지가 0이나 1이면 토,일요일임
if(uWday = 0 || uWday = 1)
{
result := true
}
}
else
{
if(uWday = 1 || uWday = 7) ;1은 일요일, 7은 토요일
{
result := true
}
}
return result
}
;위 함수들을 이용해서 오늘+추가일 이후가 공휴일,주말이면 그 다음 날을 계산해서 알려줌 (Tab키 사용)
tab::
{
addDD := 56 ;추가되는 날짜
result1 := false
result2 := false
uDay = %A_NOW%
EnvAdd, uDay, addDD, Days
FormatTime, uDay, %uDay%, yyyy.M.d.
Loop
{
uWday := A_WDay + addDD
result1 := CheckWeekend(uWday) ;요일만 따로 체크 합니다. 주말이면 true
if(result1 = false) ;주말이 아닐시 공휴일인지 검사합니다.
{
ToDay = %A_NOW%
EnvAdd, ToDay, addDD, Days
FormatTime, ToDay, %ToDay%, yyyy.M.d.
result2 := CheckHoliday(ToDay) ;공휴일이면 true
}
if(result1 = false && result2 = false) ;주말, 공휴일 둘 다 아니면 검사 종료
{
break
}
addDD := addDD + 1 ;하나라도 만족 못하면 1일 더 추가해서 다시 검사
}
MsgBox, 0, , 지정한 날짜 : %uDay% `n주말&공휴일이 아닌 날짜 : [%ToDay%] (%result1% : %result2%)
return
}
[오토핫키] 대입연산자, 산술연산자, 비교연산자, 논리연산자에 대한 메모 (0) | 2021.01.10 |
---|---|
[오토핫키] 파일, 폴더 관련 메모 (0) | 2020.12.25 |
[오토핫키] 마우스 관련 (0) | 2020.11.16 |
[스크랩] 오토핫키 엑셀 다루기 (0) | 2020.10.31 |
[오토핫키] 메세지박스 만들기 : 하나의 함수를 이용해서 창 여러개 띄울 때 (0) | 2020.10.31 |