永发信息网

VB时间相加的问题

答案:4  悬赏:10  手机版
解决时间 2021-02-28 11:18
  • 提问者网友:浮克旳回音
  • 2021-02-27 16:40
为做ASS字幕特效要写个程序
我想要的格式是
ASS字幕的时间格式为
0:00:00.00
小时:分钟:秒:1/100秒
最后一个进位是100……其他进位为60
比如现在的时间是
0:00:00.50
我想加上 1:00:00.60
该怎么办?
定义数据a=0:00:00.50
b=1:00:00.60

然后该怎么处理
最佳答案
  • 五星知识达人网友:毛毛
  • 2021-02-27 17:17
a,b都设为字符串型,且规格为##:00:00:00,小时不限制位数,但是后面的都一定要设置两位,需要时调用SumTime(时间1, 时间2),返回值就是结果了,这样就行
Private Function SumTime(a As String, b As String)
MSTemp = Val(Right(a, 2)) + Val(Right(b, 2))
STemp = Val(Left(Right(a, 5), 2)) + Val(Left(Right(b, 5), 2))
MTemp = Val(Left(Right(a, 8), 2)) + Val(Left(Right(b, 8), 2))
HTemp = Val(Left(a, InStr(a, ":") - 1)) + Val(Left(b, InStr(b, ":") - 1))

MS = Val(MSTemp) Mod 100
STemp = Val(STemp) + Val(MSTemp) \ 100
S = Val(STemp) Mod 60
MTemp = Val(MTemp) + Val(STemp) \ 60
M = Val(MTemp) Mod 60
H = Val(HTemp) + Val(MTemp) \ 60
SumTime = H & ":" & Format(M, "00") & ":" & Format(S, "00") & ":" & Format(MS, "00")
End Function

Private Sub Form_Load()
Dim a As String, b As String
a = "0:00:00.50"
b = "1:00:00.60"
MsgBox SumTime(a, b)
End Sub
全部回答
  • 1楼网友:掌灯师
  • 2021-02-27 21:18
dim date1 as date = text1.text dim date2 as date = text2.text dim date3 as date = date1.addhours(date2.hour) date3 = date1.addminutes(date2.minute) date3 = date1.addseconds(date2.second) msgbox(date3) 注:date常数必须带有小时、分钟和秒钟,你的 text2.text 的值是不能转换为时间常数的。必须为“小时:分钟:秒钟”的格式。 另外:这是 2008 的代码。不是 6.0 的。 要是那样,你必须把歌曲播放时间转换为秒数。然后在 date 变量上用 addseconds 函数加上秒数就可以了,vb 会自动转换为相应的分钟和小时……还是 2008 的
  • 2楼网友:街头电车
  • 2021-02-27 20:19
我是把时间转换为实数后进行处理再替换掉原来的时间的: 1 先把时间转换为实数(整数部分为秒时间,小数部分为毫秒时间); 2 加上相应的时间差; 3 把得到的实数再转换为时间字符串替换掉原来的字符串。
  • 3楼网友:上分大魔王
  • 2021-02-27 18:45
Private Sub Command1_Click() Dim a, b, C As String Dim TempAH, TempBH, TempAL, TempBL, SumH, SumL As Long a = "0:00:01.99" b = "1:20:00.99" TempAH = Abs(DateDiff("s", Split(a, ".")(0), 0)) TempBH = Abs(DateDiff("s", Split(b, ".")(0), 0)) TempAL = Split(a, ".")(1) TempBL = Split(b, ".")(1) SumH = TempAH + TempBH SumL = CInt(TempAL) + CInt(TempBL) MsgBox Int(SumH / 3600) & ":" & Int((SumH Mod 3600) / 60) & ":" & Int((SumH Mod 3600) Mod 60) + Int(SumL / 100) & "." & SumL Mod 100 End Sub
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯