感謝PTT的LPH66大大協助優化腳本。
F1:: ;win+shift+w,將所選日期轉換添加星期,以當年計算 ex:11/23→11/23(五) OldClip = %Clipboard% ;把目前的剪貼簿內容先存起來 sleep, 200 Send, ^c sleep, 200 Loop, Parse, Clipboard, /, { if A_Index <= 1 ;第1個循環存入v_month v_month = %A_LoopField% if A_Index <= 2 ;第2個循環存入v_day v_day = %A_LoopField% } if v_month < 10 ;小於10加0 v_month = 0%v_month% if v_day < 10 ;小於10加0 v_day = 0%v_day% if A_MM > 11 ;如果當前月份大於11(也就是12月) { if v_month < 6 ;如果要輸入的月份小於6(也就是1~5月) { v_year := A_YYYY+1 } else ;如果要輸入的月份大於等於6(也就是6~12月) { v_year := A_YYYY } } else ;當前月份小於等於11(也就是1~12月) { v_year := A_YYYY } FormatTime, TimeString,%v_year%%v_month%%v_day%, WDay TimeString := TimeString-1 V_CWday := SubStr("日一二三四五六", TimeString+1, 1) ;從字串開始向右複製不超過長度1的子字符串至V_CWday sleep, 200 Clipboard = %Clipboard%(%V_CWday%) sleep, 200 Send, ^v Clipboard = %OldClip% ;恢復先前剪貼簿內容 return
2018/12/26補充:已調整為月底會改為隔年。邏輯是如果當前月份大於11(也就是12月),且要輸入的月份小於6(也就是1~5月),則用隔年來計算。