找回密码
 加入
搜索
查看: 4780|回复: 12

[系统综合] 時間相加 [已解决]

  [复制链接]
发表于 2011-1-12 23:28:42 | 显示全部楼层 |阅读模式
本帖最后由 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
发表于 2011-1-13 00:26:21 | 显示全部楼层
不明白你想表达什么`
发表于 2011-1-13 00:46:48 | 显示全部楼层
#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, "", "[CLASS:SysDateTimePick32; INSTANCE:1]")
$t1 = ControlGetText($wgui, "", "[CLASS:SysDateTimePick32; INSTANCE:2]")
$t2 = ControlGetText($wgui, "", "[CLASS:SysDateTimePick32; INSTANCE:3]")

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
发表于 2011-1-13 11:50:17 | 显示全部楼层
楼主的意思是不是:

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
 楼主| 发表于 2011-1-13 22:03:13 | 显示全部楼层
回复 2# renren


    這我沒有辦法啦
誰叫我表達能力差
 楼主| 发表于 2011-1-13 22:05:04 | 显示全部楼层
回复 3# _ddqs.
謝謝你的幫助

不過這不是我想要的效果

你這個效果好像只是將字串連在一起
而不是相加
 楼主| 发表于 2011-1-13 22:07:48 | 显示全部楼层
楼主的意思是不是:

01:00:30 + 01:00:20 = 02:00:50
05:00:00 + 05:00:20 = 10:00:20
yhxhappy 发表于 2011-1-13 11:50

謝謝
這就是我想要的效果
发表于 2011-1-13 22:19:13 | 显示全部楼层
是不是加后返回新的时间
---------------------------
A: $date + $timeA = 2011/1/1 00:00:01 ^换算回毫秒
B: $date + $timeB = 2011/1/1 12:23:45 ^换算回毫秒

A - 系统时间 + (B - 系统时间) ……然后重格式化成本地时间输出
发表于 2011-1-13 22:24:20 | 显示全部楼层
系统时间 = (年 - 1970) *秒数/年(年、月、日、时、分、秒)
 楼主| 发表于 2011-1-13 22:26:14 | 显示全部楼层
本帖最后由 sta 于 2011-1-13 22:40 编辑

回复 8# _ddqs.

就係這樣
不過我找了很久好像autoit 並沒有將時間換成毫秒的功能

系统时间 = (年 - 1970) *秒数/年(年、月、日、时、分、秒)
這條公式是如何得到的?

因為我看了很耐都不明白
特別是那個 1970
发表于 2011-1-13 23:10:13 | 显示全部楼层
本帖最后由 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)
是要这个吗?
其他要求可以参照_DateTimeSplit,_DateTimeFormat函数将年月日时分秒拆出来带入计算
发表于 2011-1-14 01:47:49 | 显示全部楼层
电脑系统时间(秒数)计时是从 1970 年 1 月 1 日的 00:00:00.000 开始的
发表于 2011-1-14 01:57:26 | 显示全部楼层
回复 10# sta


公式不准的
只是提醒下
自己做时间运算时要注意19700101这个数字
有时会用到
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-2 16:21 , Processed in 0.087993 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表