妹子跪求vb大神解决时间计算问题

yuty0926 2017-10-20 11:47:01
Dim strStartTime As String
Dim strEndTime As String
Dim result As String
Dim dtStart As DateTime
Dim dtEnd As DateTime
Dim difference As TimeSpan

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
strStartTime = ClockinWork.ComboBox1.Text
strEndTime = ComboBox1.Text

dtStart = New DateTime
dtEnd = New DateTime

dtStart = Convert.ToDateTime(strStartTime)
dtEnd = Convert.ToDateTime(strEndTime)
difference = dtEnd.Subtract(dtStart)
Console.WriteLine(difference)
result = Convert.ToString(difference)
TextBox1.Text = result

End Sub



以上是我的代码,我想实现的是在clockin里用combobox让用户选择上班的时间,
然后再clockout里用combobox让用户选择时间 由此 两个做减法得出 该用户上班的小时数。
但是如果用10:30PM - 3.30PM 所得出来的就是负数,用PM 减去AM 的都不正确,
难道是因为跨越了天数嘛?
这个代码正确吗? 请问该怎么做。。。
...全文
1013 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
轻鸿万里 2017-10-30
  • 打赏
  • 举报
回复
用DateDiff,用combox就写成24小时格式,方便计算。 P过的照片就不看了。
正怒月神 2017-10-26
  • 打赏
  • 举报
回复
明明可以靠长相吃饭, 为什么楼主一定要靠实力呢!!! 说正经的额,楼主你不要用时间相减, 应该是类似于 11号10:30AM好11号 3:30PM 或者 11号3:30PM 12号 10:30AM 带上日期你使用后一个减去前一个,就不会有负数了
jthkl 2017-10-26
  • 打赏
  • 举报
回复
好看的妹子怎么会没有男朋友,通常这种都要用抢的。
秋天之落叶 2017-10-26
  • 打赏
  • 举报
回复
楼上的全是流氓,我就不信,写论文的妹子有这么美的颜值?哈哈哈 妹子,有男朋友了吗?嘿嘿嘿
DZ杰 2017-10-26
  • 打赏
  • 举报
回复
你把控件ComboBox改做 DateTimePicker 然后把DateTimePicker属性Format值改Time Dim strStartTime As String Dim strEndTime As String Dim result As String Dim dtStart As DateTime Dim dtEnd As DateTime Dim difference As TimeSpan Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click strStartTime = DateTimePicker2.Value strEndTime = DateTimePicker1.Value dtStart = New DateTime dtEnd = New DateTime dtStart = Convert.ToDateTime(strStartTime) dtEnd = Convert.ToDateTime(strEndTime) difference = dtEnd.Subtract(dtStart) Console.WriteLine(difference) result = Convert.ToString(difference) TextBox1.Text = result End Sub
lovingkiss 2017-10-25
  • 打赏
  • 举报
回复
引用 18 楼 gaiyi09 的回复:
[quote=引用 12 楼 yuty0926 的回复:] 为了我的论文我也是满拼的
太美![/quote] 美不美,得露大腿。。。 留完照片留微信——放心,一堆的流氓等着帮你完成论文的
VB.Net 2017-10-25
  • 打赏
  • 举报
回复
请看我的博客 vb.net 教程 1-8 日期时间类型2 本节刚好讲到时间差。
Boogaloo-Jer 2017-10-24
  • 打赏
  • 举报
回复
引用 12 楼 yuty0926 的回复:
为了我的论文我也是满拼的
太美!
wq1282 2017-10-23
  • 打赏
  • 举报
回复
如果有跨天,建议要有日期。 Math.Abs(DateDiff("h",Date.Parse(time1),Date.Parse(time2))) 另外在程序中加个判断: 当用户修改上班时间后,程序判断“下班时间”小于上班时间,则下班时间=上班时间。 当用户修改下班时间 下班时间小于上班时间时,不允许修改,恢复上次保存的下班时间。 实际:下班时间 不应该早于 上班时间,计算时注意这一个点就行了,没什么难度。
wq1282 2017-10-23
  • 打赏
  • 举报
回复
Math.Abs(DateDiff("h",time1,time2)) 简单点,就取绝对值喽!
yuty0926 2017-10-21
  • 打赏
  • 举报
回复
我这个方法也是照着youtube做的 感觉压根也就不对的吧。。。 哪个大神能告诉我。。
yuty0926 2017-10-21
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
你自己说说“10:30PM - 3.30PM”是什么意思嘛?! 妹子爆照。
就是用十点半 减去 三点半 我希望得到登入的小时数
yuty0926 2017-10-21
  • 打赏
  • 举报
回复
因为我需要做一个简单的根据上班打卡时间,来给兼职的小时工算工资的小程序。 相当于 我chenck in的时间是10:00am -check out的时间是3:00pm 这样子就显示工作的小时数就是5hours 可是如果我checkin的时间是3:00pm 然后checkout的时间是10:00am 时间就显示出负数而且也算出来不对。 是我的代码有问题吗。。 我只是大学有这个课程,要做论文,所以希望尽力做好
吉普赛的歌 2017-10-21
  • 打赏
  • 举报
回复
本来想上传, 但现在下载最少也得 2 分的下载分……没兴趣了 如果你看不明白,想要源码就私信我吧
吉普赛的歌 2017-10-21
  • 打赏
  • 举报
回复
很多年没写 VB 代码, 忘记得差不多了, 但看楼主这么诚心的份上, 还是帮一把吧:
Public Class Form1

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

For i = 0 To 23
cbBeginTime.Items.Add(i & ":00")
Next

For i = 0 To 23
cbEndTime.Items.Add(i & ":00")
Next

End Sub

Dim strStartTime As String
Dim strEndTime As String
Dim result As String
Dim dtStart As DateTime
Dim dtEnd As DateTime
Dim difference As TimeSpan


Private Sub btnCal_Click(sender As Object, e As EventArgs) Handles btnCal.Click
strStartTime = cbBeginTime.Text
strEndTime = cbEndTime.Text

dtStart = New DateTime
dtEnd = New DateTime

dtStart = Convert.ToDateTime("2017-10-21 " & strStartTime)
dtEnd = Convert.ToDateTime("2017-10-21 " & strEndTime)

difference = dtEnd.Subtract(dtStart)
result = Convert.ToString(difference.TotalHours)
txtResult.Text = result
End Sub
End Class


  • 打赏
  • 举报
回复
女生,大多数都不喜欢业务逻辑分析(更别说代码设计逻辑),喜欢让男生包养。如果自己不下狠心研究学习逻辑知识,那么女生搞开发肯定是一事无成。
  • 打赏
  • 举报
回复
你自己说说“10:30PM - 3.30PM”是什么意思嘛?! 妹子爆照。
yuty0926 2017-10-21
  • 打赏
  • 举报
回复


为了我的论文我也是满拼的
yuty0926 2017-10-21
  • 打赏
  • 举报
回复
引用 10 楼 yenange 的回复:
[quote=引用 7 楼 yuty0926 的回复:] 我是在form1(clockin)里用组合框显示了时间,例如:00:00am 00:05am 00:10am 员工可以根据时间进行选择, 然后再form2(clockout))里也适用组合框显示时间 和form1一样, 然后我希望在form2里员工一旦点击了确定键 我就可以算出这个两个时间的小时差。。 方法试了很多,真的很无助 [quote=引用 5 楼 yuty0926 的回复:] 我这个方法也是照着youtube做的 感觉压根也就不对的吧。。。 哪个大神能告诉我。。
引用 6 楼 yenange 的回复:
[quote=引用 4 楼 yuty0926 的回复:] [quote=引用 1 楼 sp1234 的回复:] 你自己说说“10:30PM - 3.30PM”是什么意思嘛?! 妹子爆照。
就是用十点半 减去 三点半 我希望得到登入的小时数[/quote] 你不爆照, P哥不信你是妹子哦 [/quote] 我的头像就是我本人呀[/quote] 你头像也太朴素了吧, 看不出哦 你要相信P哥, 他愿意帮你, 一定能搞得定的[/quote] 咦我有改头像哦。。怎么显示不出
加载更多回复(5)

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧