Thinkai's Blog

Autohoutkey|Python|php|aardio|VOIP|IT 爱好者

计算日期差几年几月几日小脚本 Autohotkey 3532

作者为 发表

Autohotkey

变量版:

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



来了就留个评论吧! 没有评论




友情链接:Autohotkey中文论坛Autohotkey中文帮助Autohotkey官网我的B站直播间如若生涯一场梦博客联系作者免GooglePlay APK下载

 主题设计 • skyfrit.com  Thinkai's Blog | 保留所有权利

63 queries in 1.347 seconds |