变量版:
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
60 queries in 4.897 seconds |