39 lines
1.4 KiB
AutoHotkey
39 lines
1.4 KiB
AutoHotkey
CALENDAR(YR){
|
|
LASTDAY := [], DAY := []
|
|
TITLES =
|
|
(LTRIM
|
|
______JANUARY_________________FEBRUARY_________________MARCH_______
|
|
_______APRIL____________________MAY____________________JUNE________
|
|
________JULY___________________AUGUST_________________SEPTEMBER_____
|
|
______OCTOBER_________________NOVEMBER________________DECEMBER______
|
|
)
|
|
STRINGSPLIT, TITLE, TITLES, % CHR(10)
|
|
RES := "________________________________" YR CHR(13) CHR(10)
|
|
|
|
LOOP 4 { ; 4 VERTICAL SECTIONS
|
|
DAY[1]:=YR SUBSTR("0" A_INDEX*3 -2, -1) 01
|
|
DAY[2]:=YR SUBSTR("0" A_INDEX*3 -1, -1) 01
|
|
DAY[3]:=YR SUBSTR("0" A_INDEX*3 , -1) 01
|
|
RES .= CHR(13) CHR(10) TITLE%A_INDEX% CHR(13) CHR(10) "SU MO TU WE TH FR SA SU MO TU WE TH FR SA SU MO TU WE TH FR SA"
|
|
LOOP , 6 { ; 6 WEEKS MAX PER MONTH
|
|
WEEK := A_INDEX, RES .= CHR(13) CHR(10)
|
|
LOOP, 21 { ; 3 WEEKS TIMES 7 DAYS
|
|
MON := CEIL(A_INDEX/7), THISWD := MOD(A_INDEX-1,7)+1
|
|
FORMATTIME, WD, % DAY[MON], WDAY
|
|
;~ MSGBOX % WD
|
|
FORMATTIME, DD, % DAY[MON], % CHR(100) CHR(100)
|
|
IF (WD>THISWD) {
|
|
RES .= "__ "
|
|
CONTINUE
|
|
}
|
|
DD := ((WEEK>3) && DD <10) ? "__" : DD, RES .= DD " ", LASTDAY[MON] := DAY[MON], DAY[MON] +=1, D
|
|
RES .= ((WD=7) && A_INDEX < 21) ? "___" : ""
|
|
FORMATTIME, DD, % DAY[MON], % CHR(100) CHR(100)
|
|
}
|
|
}
|
|
RES .= CHR(13) CHR(10)
|
|
}
|
|
STRINGREPLACE, RES, RES,_,%A_SPACE%, ALL
|
|
STRINGREPLACE, RES, RES,%A_SPACE%0,%A_SPACE%%A_SPACE%, ALL
|
|
RETURN RES
|
|
}
|