繁体   English   中英

如何使用 vb.net 计算时间

[英]how to calculate time using vb.net

我做一个项目租车但是我计算时间有困难,如果你迟还车要承担罚款,请帮帮我

这是我的代码

Dim date1 As DateTime
Dim date2 As DateTime
'DateTimePicker1 = today's date 10/07/2011 11:10
'DateTimePicker2 = date back 10/07/2011 09:00

date1 = Convert.ToDateTime (Me.DateTimePicker2.Value)
date2 = Convert.ToDateTime (Me.DateTimePicker1.Value)

Dim diff As System.TimeSpan
diff = date2 - date1
Me.txtresult.text = diff.Hours & diff.Minutes

但结果不对应..

我想要结果 = 2 小时 10 分钟

有人帮助我,,,请......

对于 2 小时 10 分钟, diff.Hours & diff.Minutes返回210 ,因为&连接了数字210的字符串表示形式。 要以您想要的方式格式化字符串,请使用String.Format()

String.Format("{0} hours {1} minutes", diff.Hours, diff.Minutes)

当时间超过一天时,这将显示出意想不到的结果。 例如,25 小时 5 分钟将显示为“1 小时 5 分钟”。 要解决此问题,您需要检查diff.Days的值或使用diff.TotalHours

假设我正确阅读了您的问题,因为date1 > date2 ,那么您将需要使用:

Dim diff = date1 - date2

否则你会回来 -2 小时 -10 分钟...... :)

从较晚的日期中减去较早的日期(请注意,如果您愿意,请注意 DateTime 有一个 Subtract 方法)。 另外,请记住计算天数。 为了说明这个概念,下面展示了表示大致相同时间跨度的五种方法。

请注意,TimeSpan 成员属性,如 Days、Hours、Minutes 等,表示时间跨度的各个组成部分(即 Hours = 0 - 23,Minutes = 0 - 59),而 TotalHours、TotalMinutes 等成员是代表整个跨度。 因此,这就是为什么他们是双打...

'Assuming DateTimePicker1 has the earlier date...
Dim date1 As DateTime = Me.DateTimePicker1.Value

'Assuming DateTimePicker2 has the later date...
Dim date2 As DateTime = Me.DateTimePicker2.Value

'Get the difference (TimeSpan)...
Dim diff As System.TimeSpan = date2.Subtract(date1)

'Some different ways to express the resulting TimeSpan...
Console.WriteLine(String.Format("{0} days, {1} hrs, {2} min, {3} sec", diff.Days, diff.Hours, diff.Minutes, diff.Seconds))
Console.WriteLine("total days = " & diff.TotalDays)
Console.WriteLine("total hours = " & diff.TotalHours)
Console.WriteLine("total minutes = " & diff.TotalMinutes)
Console.WriteLine("total seconds = " & diff.TotalSeconds)

当您解析具有不同日期格式的字符串时,您应该指定格式是什么:

date1 = DateTime.ParseExact(Me.txttanggalkembali.Value, "dd'/'MM'/'yyyy HH':'mm", CultureInfo.InvariantCulture)
date2 = DateTime.ParseExact(Me.DateTimePicker1.Value, "MM'.'dd'.'yyyy HH':'mm", CultureInfo.InvariantCulture)

您只需要改用TotalHoursTotalMinutes属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM