#SingleInstance Force
; 获取当前日期
CurrentDate := SubStr(A_Now, 1, 8)
FutureDate := 21250312
; ; 处理2月29日的特殊情况(如果当前是闰年2月29日,但100年后不是闰年)
; If (CurrentMonth = "02" && CurrentDay = "29")
; If (!((Mod(FutureYear, 4) = 0 && Mod(FutureYear, 100) != 0) || Mod(FutureYear, 400) = 0))
; FutureDate := FutureYear . "0228"
; 计算天数差
MsgBox % DaysDifference := DateDiff(CurrentDate, FutureDate, "Hours")
; 计算两个日期之间的差异(以天为单位)
DateDiff(Date1, Date2, Unit:="Days") {
; 转换为文件时间格式
VarSetCapacity(SystemTime1, 16, 0)
, NumPut(SubStr(Date1, 1, 4), SystemTime1, 0, "UShort")
, NumPut(SubStr(Date1, 5, 2), SystemTime1, 2, "UShort")
, NumPut(SubStr(Date1, 7, 2), SystemTime1, 6, "UShort")
, DllCall("SystemTimeToFileTime", "Ptr", &SystemTime1, "Ptr*", FileTime1)
, VarSetCapacity(SystemTime2, 16, 0)
, NumPut(SubStr(Date2, 1, 4), SystemTime2, 0, "UShort")
, NumPut(SubStr(Date2, 5, 2), SystemTime2, 2, "UShort")
, NumPut(SubStr(Date2, 7, 2), SystemTime2, 6, "UShort")
, DllCall("SystemTimeToFileTime", "Ptr", &SystemTime2, "Ptr*", FileTime2)
SecondsPerDay := 60 * 60 * 24
TimeDiff := (FileTime2 - FileTime1) / 10000000
If (Unit = "Days")
Return Round(TimeDiff / SecondsPerDay)
Else If (Unit = "Hours")
Return Round(TimeDiff / 3600)
Else If (Unit = "Minutes")
Return Round(TimeDiff / 60)
Else If (Unit = "Seconds")
Return Round(TimeDiff)
}
/*
; 计算两个日期之间的差异(以小时为单位)
DateDiff(Date1, Date2) {
VarSetCapacity(SystemTime1, 16, 0)
, NumPut(SubStr(Date1, 1, 4), SystemTime1, 0, "UShort")
, NumPut(SubStr(Date1, 5, 2), SystemTime1, 2, "UShort")
, NumPut(SubStr(Date1, 7, 2), SystemTime1, 6, "UShort")
, DllCall("SystemTimeToFileTime", "Ptr", &SystemTime1, "Ptr*", FileTime1)
, VarSetCapacity(SystemTime2, 16, 0)
, NumPut(SubStr(Date2, 1, 4), SystemTime2, 0, "UShort")
, NumPut(SubStr(Date2, 5, 2), SystemTime2, 2, "UShort")
, NumPut(SubStr(Date2, 7, 2), SystemTime2, 6, "UShort")
, DllCall("SystemTimeToFileTime", "Ptr", &SystemTime2, "Ptr*", FileTime2)
Return (FileTime2 - FileTime1) // 10000000 // 3600
}
*/
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。

评论(0)