[已解决]如何计算时间间隔,用整数形式表示的年月日,时分秒
本帖最后由 ncxj 于 2015-12-18 17:08 编辑先上代码
$i=1450438199 ;以整数形式表示的准确时间:2015-12-18 11:29:59
$sec=Mod($i,60)
$minute=Mod(($i-$sec)/60,60)
$hour=Mod((($i-$sec)/60-$minute)/60,24)
$time=$hour &":"&$minute&":"&$sec
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $time = ' & $time & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
;以下$day应该是从某年某月某日以来的第几天数据,现在想知道怎么反推出这个初始的年月日,以及如何计算该日期之后,从这个初始时间到任意一个日期中间的天数
$day=((($i-$sec)/60-$minute)/60-$hour)/24
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $day = ' & $day & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
$year =2015-Mod($day,365) ;这样简单的用365计算肯定是不行的,每个公历年并不是简单的365日,这里简单计算一下,看看精确计算有多复杂?
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $year = ' & $year & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
这样可以得到结果:
@@ Debug(7) : $time = 11:29:59
>Error code: 0
@@ Debug(11) : $day = 16787
>Error code: 0
@@ Debug(13) : $year = 1653
>Error code: 0
如此计算的时分秒应该是精准的,但是反推初始的年月日很难.并且,如果知道初始年月日,如何才能准确的计算该日期之后某一天到初始日期,中间的日期数? #include <Date.au3>
$iDateCalc = _DateDiff( 'D', "2015/4/8","2015/11/19")
MsgBox(0, "", "計算經過的天數: " & $iDateCalc )這個可以計算經過天數 回复 2# txen548
对对,这样就有办法了,好主意,谢谢 程序第12行有误:$year =2015-Mod($day,365)
应该是:$year =2015-$day / 365
用_DateDiff 计算出来的起始时间,应该是 1970/1/1 0:0:0 感谢分享,收藏
页:
[1]