끄적끄적

반응형

 

;공휴일과 일치하는지 검사

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

}

반응형
Please Enable JavaScript!
Mohon Aktifkan Javascript![ Enable JavaScript ]