소프트웨어 오토핫키에서 날짜 계산
2022.05.07 14:04
오늘 날짜에서
월은 -1
일은 +1
을 해서 한달 전의 날짜를 얻으려고 하는데
EnvSub으로 어케어케 해보려고 해도 잘 안되네요
댓글 [8]
-
줄리아니 2022.05.07 17:46
-
我行 2022.05.07 18:59
와우 감사합니다. 덕분에 힌트를 얻어 완성했습니다. (윤달은 포기)
Today := SubStr(A_Now, 5, 2)
if (Today=03)
Dday=-27
if (Today=05) or (Today=07) or (Today=10) or (Today=12)
Dday=-29
Else
Dday=-30
Today := SubStr(A_Now, 1, 8)
EnvAdd, Today, %Dday% , Days
Oneday := SubStr(Today, 1, 8)
msgbox % Oneday
return
-
지후빠 2022.05.07 18:35
만들어 보긴했으나 논리에 문제가 있는듯...
만약 오늘이 3월 29/30/31일이나 5월 31이면 어떻게 계산해야하나요? 3월31일 -> 3월1일?2일?3일?, 5월31일 -> 5월1일?2일?
(먼저 하루를 더하고 한달을 뺀후 31일이 없는 달은 다음 달 1일로 계산하는 것은 가능하겠지만...)
- 정해진 일 수(30일)로 빼는 것은 수월할 것 같습니다.
cYMD := A_Now
cY := SubStr(cYMD,1,4)
cM := SubStr(cYMD,5,2)
cD := SubStr(cYMD,7,2)
pY := (cM=1) ? (cY-1) : cY
pM := (cM=1) ? 12 : (cM-1)
StringRight, pM, % 0 . pM, 2
pYMD = %pY%%pM%%cD%
pYMD += 1, D
FormatTime, pYMD, %pYMD%, yyyy-MM-dd
MsgBox %pYMD%
; 첫줄을 cYMD := 20220131 로 테스트하면 2022-01-01 로 출력합니다.
; 결과가 유효한 날짜가 아니면 오늘날짜를 출력합니다. 예) 20220331 -> 20220231+1 -> 날짜오류로 20220507 오늘 날짜 출력
-
我行 2022.05.07 19:00
감사합니다. 좋은 참고가 되었습니다!!
-
지후빠 2022.05.07 20:55
윤달... 음력을 계산하시려고 하시나요?
-
我行 2022.05.08 09:18
아뇨.. 4년마다 돌아오는 2월29일이여
-
지후빠 2022.05.08 11:24
이전달 일 수를 구해서 1일 빼고 오늘날짜에서 그 일수 만큼 빼주도록 하였습니다.
5월 31일 등에서 이전달 보다 긴날에서는 5월 2일 등으로 나오지만... 윤달도 문제 없을 것 같습니다.
theday := SubStr(A_Now, 1, 8)
subday := SubStr(theday, 1, 6) . "01"
subday += -1,days
subday := SubStr(subday, 7, 2) - 1
theday += -subday,days
FormatTime, theday, %theday%, yyyy-MM-dd
MsgBox % theday
-
我行 2022.05.08 11:49
감사합니다! (__)
EnvAdd 를 사용해 보십시요
q::
Today := SubStr(A_Now, 1, 8)
EnvAdd, Today, -29 , Days
Oneday := SubStr(Today, 1, 8)
msgbox % Oneday