이렇게 할 수있는 방법이 몇 가지 있습니다. 나는 너에게 편도를 보여줄 것이다.
코드를 멋지게 유지하기 위해 모든 것을 별도의 함수에 넣고 필요할 때 호출합니다. 오늘, 우리는 하나를 구축하고 전화를 겁니다 : 뜻을 행하려이 기능은 지난 월요일, 다음 날짜를 얻을 수 있었다 얼마나 많은 일 전 계산 무엇
analyzeDate()
합니다. 미리 정의 된 두 개의 함수를 사용하면 YYYY/MM/DD 형식으로 날짜가 반환됩니다. 찾고자하는 결과를 얻으려면 날짜를 연, 월, 일 (Respectively)로 나누고, 달을 분석 한 다음 원하는 형식으로 날짜를 설정할 수 있습니다.
아래 예제 기능을 참조하십시오.
Func analyzeDate()
$iLastMon = _DateToDayOfWeek(@YEAR, @MON, @MDAY) - 2
;MsgBox(0,"","Last Monday was " & $iLastMon & " days ago." & @LF)
$sLastMon = _DateAdd("D", ($iLastMon * -1), @YEAR & "/" & @MON & "/" & @MDAY)
;MsgBox(0,"","Last Monday was " & $sLastMon & @LF)
global $tDate = ""
$newDate = StringSplit($sLastMon, "/")
If $newDate[2] = 1 Then
$tDate = "January " & $newDate[3] & ", " & $newDate[1]
ElseIf $newDate[2] = 2 Then
$tDate = "Febuary " & $newDate[3] & ", " & $newDate[1]
ElseIf $newDate[2] = 3 Then
$tDate = "March " & $newDate[3] & ", " & $newDate[1]
ElseIf $newDate[2] = 4 Then
$tDate = "April " & $newDate[3] & ", " & $newDate[1]
ElseIf $newDate[2] = 5 Then
$tDate = "May " & $newDate[3] & ", " & $newDate[1]
ElseIf $newDate[2] = 6 Then
$tDate = "June " & $newDate[3] & ", " & $newDate[1]
ElseIf $newDate[2] = 7 Then
$tDate = "July " & $newDate[3] & ", " & $newDate[1]
ElseIf $newDate[2] = 8 Then
$tDate = "August " & $newDate[3] & ", " & $newDate[1]
ElseIf $newDate[2] = 9 Then
$tDate = "September " & $newDate[3] & ", " & $newDate[1]
ElseIf $newDate[2] = 10 Then
$tDate = "October " & $newDate[3] & ", " & $newDate[1]
ElseIf $newDate[2] = 11 Then
$tDate = "November " & $newDate[3] & ", " & $newDate[1]
ElseIf $newDate[2] = 12 Then
$tDate = "December " & $newDate[3] & ", " & $newDate[1]
Else
MsgBox(16,"ERROR", "There was an issue analyzing the date!")
$tDate = "ERROR"
EndIf
EndFunc
지금, 당신은 당신이 MemoWrite을 (호출 직전에이 기능을)를 호출하고, MemoWrite의 매개 변수의 끝에 $ 있는데, TDate 변수를 추가 할 수 있습니다().
예 :
Calendar.au3
#include <GUIConstantsEx.au3>
#include <GuiMonthCal.au3>
#include <WindowsConstants.au3>
; NEW =====================
#include <Date.au3> ; =
; =========================
Global $g_idMemo
Example()
Func Example()
Local $idMonthCal
; Create GUI
GUICreate("Month Calendar Get First DOW String", 400, 300)
$idMonthCal = GUICtrlCreateMonthCal("", 4, 4, -1, -1, $WS_BORDER, 0x00000000)
; Create memo control
$g_idMemo = GUICtrlCreateEdit("", 4, 168, 392, 128, 0)
GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New")
GUISetState(@SW_SHOW)
; Get/Set first DOW
_GUICtrlMonthCal_SetFirstDOW($idMonthCal, 0)
; NEW =============
analyzeDate() ; =
; =================
MemoWrite("First DOW : " & _GUICtrlMonthCal_GetFirstDOWStr($idMonthCal) & " " & $tDate) ; ADDED: & " " & $tDate
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
EndFunc
; Write message to memo
Func MemoWrite($sMessage)
GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1)
EndFunc
; NEW =================================================================================
Func analyzeDate() ; =
$iLastMon = _DateToDayOfWeek(@YEAR, @MON, @MDAY) - 2 ; =
;MsgBox(0,"","Last Monday was " & $iLastMon & " days ago." & @LF) ; =
$sLastMon = _DateAdd("D", ($iLastMon * -1), @YEAR & "/" & @MON & "/" & @MDAY) ; =
;MsgBox(0,"","Last Monday was " & $sLastMon & @LF) ; =
global $tDate = "" ; =
; =
$newDate = StringSplit($sLastMon, "/") ; =
If $newDate[2] = 1 Then ; =
$tDate = "January " & $newDate[3] & ", " & $newDate[1] ; =
ElseIf $newDate[2] = 2 Then ; =
$tDate = "Febuary " & $newDate[3] & ", " & $newDate[1] ; =
ElseIf $newDate[2] = 3 Then ; =
$tDate = "March " & $newDate[3] & ", " & $newDate[1] ; =
ElseIf $newDate[2] = 4 Then ; =
$tDate = "April " & $newDate[3] & ", " & $newDate[1] ; =
ElseIf $newDate[2] = 5 Then ; =
$tDate = "May " & $newDate[3] & ", " & $newDate[1] ; =
ElseIf $newDate[2] = 6 Then ; =
$tDate = "June " & $newDate[3] & ", " & $newDate[1] ; =
ElseIf $newDate[2] = 7 Then ; =
$tDate = "July " & $newDate[3] & ", " & $newDate[1] ; =
ElseIf $newDate[2] = 8 Then ; =
$tDate = "August " & $newDate[3] & ", " & $newDate[1] ; =
ElseIf $newDate[2] = 9 Then ; =
$tDate = "September " & $newDate[3] & ", " & $newDate[1] ; =
ElseIf $newDate[2] = 10 Then ; =
$tDate = "October " & $newDate[3] & ", " & $newDate[1] ; =
ElseIf $newDate[2] = 11 Then ; =
$tDate = "November " & $newDate[3] & ", " & $newDate[1] ; =
ElseIf $newDate[2] = 12 Then ; =
$tDate = "December " & $newDate[3] & ", " & $newDate[1] ; =
Else ; =
MsgBox(16,"ERROR", "There was an issue analyzing the date!") ; =
$tDate = "ERROR" ; =
EndIf ; =
EndFunc ; =
; =====================================================================================
출력이 유사 할 것입니다 :
analyzeDate()
MemoWrite("First DOW : " & _GUICtrlMonthCal_GetFirstDOWStr($idMonthCal) & " " & $tDate)
지금, 당신의 전체 코드는 다음과 유사 보일 것이다 :
날짜가 금요일 10 월 21 일입니다
오늘, 프로그램을 실행하는 경우
2016 년, 당신은 얻을 것이다 :
First DOW : Monday October 17, 2016
난이 도움이되기를 바랍니다!이 문제에 문제가있는 경우 아래에 의견을 보내 주시고 나에게 무슨 일이 일어나는지 알려 주시기 바랍니다. 우리는 그것이 당신이 그것을 필요로하는 방식으로 작동하게하는 방법을 알아낼 수 있습니다.
감사합니다,
팀