時間相加 [已解决]
本帖最后由 sta 于 2011-1-13 22:09 编辑如果做到時間可以用加法
$date + $timeA = 2011/1/1 00:00:01
$date + $timeA + $timeB = 2011/1/1 12:23:45
#include <GUIConstantsEx.au3>
#include <DateTimeConstants.au3>
GUICreate("My GUI get date", 200, 200, 800, 200)
$date = GUICtrlCreateDate("2011/01/01", 10, 10, 185, 20)
$timeA = GUICtrlCreateDate("00:00:01", 30, 40, 100, 20, $DTS_TIMEFORMAT)
$timeB = GUICtrlCreateDate("12:23:44", 30, 80, 100, 20, $DTS_TIMEFORMAT)
GUISetState()
Do
$msg = GUIGetMsg()
Until $msg = $GUI_EVENT_CLOSE
不明白你想表达什么` #include <GUIConstantsEx.au3>
#include <DateTimeConstants.au3>
$wgui = GUICreate("My GUI get date", 200, 200, 800, 200)
$date = GUICtrlCreateDate("2011/01/01", 10, 10, 185, 20)
$timeA = GUICtrlCreateDate("00:00:01", 30, 40, 100, 20, $DTS_TIMEFORMAT)
$timeB = GUICtrlCreateDate("12:23:46", 30, 80, 100, 20, $DTS_TIMEFORMAT)
GUISetState()
$d = ControlGetText($wgui, "", "")
$t1 = ControlGetText($wgui, "", "")
$t2 = ControlGetText($wgui, "", "")
ConsoleWrite($d & " " & $t1 & @LF)
ConsoleWrite($d & " " & $t2 & @LF)
MsgBox(0, 0, $d & " " & $t1 & @LF & $d & " " & $t2 & @LF)
Do
$msg = GUIGetMsg()
Until $msg = $GUI_EVENT_CLOSE
楼主的意思是不是:
01:00:30 + 01:00:20 = 02:00:50
05:00:00 + 05:00:20 = 10:00:20#Include <Date.au3>
$date = "2011/01/01"
$timeA = "05:00:00"
$timeB = "05:00:20"
$DiffA = _DateDiff('s', $date & " 00:00:00", $date & " " & $timeA) * 1000
$DiffB = _DateDiff('s', $date & " 00:00:00", $date & " " & $timeB) * 1000
MsgBox(0, 0, _Timer($DiffA+$DiffB))
Func _Timer($Ticks)
Local $Hour, $Mins, $Secs
_TicksToTime($Ticks, $Hour, $Mins, $Secs)
$Time = StringFormat("%02i:%02i:%02i", $Hour, $Mins, $Secs)
Return $Time
EndFunc ;==>Timer 回复 2# renren
這我沒有辦法啦
誰叫我表達能力差 回复 3# _ddqs.
謝謝你的幫助
不過這不是我想要的效果
你這個效果好像只是將字串連在一起
而不是相加 楼主的意思是不是:
01:00:30 + 01:00:20 = 02:00:50
05:00:00 + 05:00:20 = 10:00:20
yhxhappy 发表于 2011-1-13 11:50 http://autoitx.com/images/common/back.gif
謝謝
這就是我想要的效果 是不是加后返回新的时间
---------------------------
A: $date + $timeA = 2011/1/1 00:00:01 ^换算回毫秒
B: $date + $timeB = 2011/1/1 12:23:45 ^换算回毫秒
A - 系统时间 + (B - 系统时间) ……然后重格式化成本地时间输出 系统时间 = (年 - 1970) *秒数/年(年、月、日、时、分、秒) 本帖最后由 sta 于 2011-1-13 22:40 编辑
回复 8# _ddqs.
就係這樣
不過我找了很久好像autoit 並沒有將時間換成毫秒的功能
系统时间 = (年 - 1970) *秒数/年(年、月、日、时、分、秒)
這條公式是如何得到的?
因為我看了很耐都不明白
特別是那個 1970 本帖最后由 netegg 于 2011-1-13 23:19 编辑
#include <Date.au3>
$sNewDate = _DateAdd( 'd',5, _now()) ;当前日期时间+5天
$sNewDate = _DateAdd( 'm',5, $sNewDate) ;+5月
$sNewDate = _DateAdd( 'y',5, $sNewDate) ;+5年
$sNewDate = _DateAdd( 'h',2, $sNewDate) ;+5小时
$sNewDate = _DateAdd( 'n',15, $sNewDate);+15分
$sNewDate = _DateAdd( 's',20, $sNewDate);+20秒
MsgBox(0,0,$sNewDate){:face (382):}是要这个吗?
其他要求可以参照_DateTimeSplit,_DateTimeFormat函数将年月日时分秒拆出来带入计算 电脑系统时间(秒数)计时是从 1970 年 1 月 1 日的 00:00:00.000 开始的 回复 10# sta
公式不准的
只是提醒下
自己做时间运算时要注意19700101这个数字
有时会用到
页:
[1]