📣 더 깊은 내용이 담긴 '프날 오토핫키 강좌 v2'의 서적판이 공개되었습니다.
가장 최신의 오토핫키를 담은 '프날 오토핫키 강좌 v2'를 책으로 만나보세요!
v2 페이지에 공개된 분량보다 더욱 깊은 내용을 처음이라도 괜찮아, 오토핫키 프로그래밍을 통해 배울 수 있습니다.
전국 온/오프라인 서점에서 만나요!
책 더 알아보기 및 구매하기
오토핫키 월주차 표시하기
#질문답변
오토핫키에 있는 A_YWeek 내장변수는 1년 중 현재 주가 몇 번째 주인지를 담고있는 변수입니다. 즉, 1~52(때에따라 53)까지의 수를 가지고 있지요.
이와 비슷하게, 한 달에서 몇 번째 주인지 가져오기 위한 함수를 작성해보았습니다.
여러 방법이 있겠지만, 그냥 1년 달력을 통째로 배열에 넣는게 좋을 것 같아서 배열을 써보았습니다. 어차피 366개의 키:값 형태의 오브젝트는 메모리를 그렇게 많이 잡아먹지 않을 것입니다.
ISO 표준 상 한 주의 시작은 월요일이며, 만약 두 달에 걸쳐서 일주일이 있다면 4일 이상을 소유하고 있는 달의 주가 됩니다. 예를 들어서 1월 30일, 31일이 월요일과 화요일, 2월 1일부터 5일까지가 수,목,금,토,일요일이라면 1월은 2일, 2월은 5일을 소유하게 되어서 이는 1월의 마지막 주가 아닌 2월의 첫째 주가 되는 식이지요. 따라서 1년은 53주가 나올 수도 있습니다.
이렇게 따졌을 경우, 2021년 5월 1일은 4월의 5번째 주가 됩니다
위 달력에서 3월 29일부터 4월 4일까지는 "4월 1주", 4월 26일부터 5월 2일까지는 "4월 5주"가 되는 셈이지요. ('4월 1주'는 3월이 3일, 4월이 4일 소유하고 있으므로 4월의 주로 인정받고, '4월 5주'는 4월이 5일, 5월이 2일을 소유하고 있으므로 4월의 주로 인정받습니다)
오토핫키로 구현을 하면서 그냥 배열 써서 월주차 달력을 통째로 다루니까 크게 골머리를 썩지 않아도 되더군요. 혹시 더 좋은 방법이 있다면 질문답변란에서 남겨주시길 바랍니다.
첨부파일을 누르면 소스코드가 다운로드 됩니다.
의도치 않게 함수가 두 부분으로 쪼개졌는데, 합치셔도 되고요. 성능상 이득을 보려면 CreateCal()함수로 만들어진 월주차 달력을 계속 이용하는 방법이 있겠는데, 사실 그렇게 무리가 가는 작업은 아닌지라 그냥 이렇게 했습니다.
⚠ 이 강좌는 오토핫키 v1을 다룹니다
지금 보시는 강좌는 구버전 오토핫키(v1.1)를 다루고 있습니다. 따라서 본 강좌의 내용은 현재 최신 오토핫키 버전 (v2.0)과 호환되지 않습니다. 구버전의 정보가 필요한 것이 아니라면, 가능한 한 새로운 사이트에 작성한 v2 강좌(https://ahkv2.pnal.dev)를 봐주시길 바랍니다.