变量版:
Gui, Add, MonthCal, x0 y0 w230 h180 vMyCalendar Gui, Add, MonthCal, x230 y0 w230 h180 vMyCalendar2 gui, add, button, x0 y180 w230 h20 gcalc, 计算 Gui, Show m01=31 m02=28 m03=31 m04=30 m05=31 m06=30 m07=31 m08=31 m09=30 m10=31 m11=30 m12=31 Return calc: GuiControlGet, MyCalendar GuiControlGet, MyCalendar2 formattime, date1, %MyCalendar%, yyyyMMdd formattime, date2, %MyCalendar2%, yyyyMMdd diff := date1-date2 if diff = 0 { datediff_year := 0 datediff_month := 0 datediff_day := 0 goto, show } Else { if diff < 0 { newdate := date2 olddate := date1 } Else { newdate := date1 olddate := date2 } formattime, newyear, %newdate%, yyyy formattime, newmonth, %newdate%, MM formattime, newday, %newdate%, dd formattime, oldyear, %olddate%, yyyy formattime, oldmonth, %olddate%, MM formattime, oldday, %olddate%, dd datediff_year := newyear-oldyear newmd = %newmonth%%newday% oldmd = %oldmonth%%oldday% testmd := newmd-oldmd if testmd < 1 datediff_year := datediff_year-1 datediff_month := newmonth-oldmonth if newmonth < %newmonth% datediff_month := 12-datediff_month if newmonth = %newmonth% { if testmd < 1 datediff_month := 11 } testd := newday-oldday if testd < 0 { if newmonth > %oldmonth% datediff_month := datediff_month-1 } testoldmonthdays = % m%oldmonth% if oldmonth = 02 { testoldyunyear := oldyear/4 IfInString, testoldyunyear, .000000 testoldmonthdays += 1 } if testd < 0 datediff_day := newday+(testoldmonthdays-oldday) if testd >= 0 datediff_day := newday-oldday goto, show } return show: MsgBox, %datediff_year%年%datediff_month%月%datediff_day%日 Return GuiClose: ExitApp
数组版(差不多):
Gui, Add, MonthCal, x0 y0 w230 h180 vMyCalendar Gui, Add, MonthCal, x230 y0 w230 h180 vMyCalendar2 gui, add, button, x0 y180 w230 h20 gcalc, 计算 Gui, Show m01=31 m02=28 m03=31 m04=30 m05=31 m06=30 m07=31 m08=31 m09=30 m10=31 m11=30 m12=31 Return calc: datediff := object() GuiControlGet, MyCalendar GuiControlGet, MyCalendar2 formattime, date1, %MyCalendar%, yyyyMMdd formattime, date2, %MyCalendar2%, yyyyMMdd diff := date1-date2 if diff = 0 { datediff["year"] := 0 datediff["month"] := 0 datediff["day"] := 0 goto, show } Else { if diff < 0 { newdate := date2 olddate := date1 } Else { newdate := date1 olddate := date2 } formattime, newyear, %newdate%, yyyy formattime, newmonth, %newdate%, MM formattime, newday, %newdate%, dd formattime, oldyear, %olddate%, yyyy formattime, oldmonth, %olddate%, MM formattime, oldday, %olddate%, dd datediff["year"] := newyear-oldyear newmd = %newmonth%%newday% oldmd = %oldmonth%%oldday% testmd := newmd-oldmd if testmd < 1 datediff["year"] := datediff["year"]-1 datediff["month"] := newmonth-oldmonth if newmonth < %newmonth% datediff["month"] := 12-datediff["month"] if newmonth = %newmonth% { if testmd < 1 datediff["month"] := 11 } testd := newday-oldday if testd < 0 { if newmonth > %oldmonth% datediff["month"] := datediff["month"]-1 } testoldmonthdays = % m%oldmonth% if oldmonth = 02 { testoldyunyear := oldyear/4 IfInString, testoldyunyear, .000000 testoldmonthdays += 1 } if testd < 0 datediff["day"] := newday+(testoldmonthdays-oldday) if testd >= 0 datediff["day"] := newday-oldday goto, show } return show: year := datediff["year"] month := datediff["month"] day := datediff["day"] MsgBox, %year%年%month%月%day%日 Return GuiClose: ExitApp
62 queries in 2.002 seconds |