1

您如何将随机生成的时间转换为整数,这就是我格式化时间的方式;

StartTime = FormatDateTime(Now, DateFormat.LongTime)
EndTime = FormatDateTime(Now, DateFormat.LongTime)
Diff = (EndTime - StartTime.Subtract(TimeSpan))

所以例如Diff = "08:30:12"

我希望能够在 8 小时 30 分钟内将其转换为“8.30”。

4

4 回答 4

1

8.30 不是Integer.

但是,如果您想要一个带有小时和分钟部分的字符串,您可以使用TimeSpan.HoursandTimeSpan.Minutes属性:String.Format

String.Format("{0}.{1}", Diff.Hours, Diff.Minutes) 

演示

于 2013-01-20T21:09:44.983 回答
1

您说您想要 Diff 结果的整数表示。
假设 Diff 是一个 TimeSpan 结构,为什么不简单地使用呢?

 Dim x as Integer 
 x = Convert.ToInt32(Diff.TotalMinutes)

当然我假设差异永远不会大到溢出整数

于 2013-01-20T21:57:03.810 回答
0

你可以做 :

Dim d As Decimal
d = Diff.Hours + Diff.Minutes / 100D

100D 给出了除法所需的小数。整数除法 30/100 给出 0

于 2013-01-20T21:19:17.083 回答
0

您可以使用 DateTime.DiffDate 函数,它返回一个 long

dim date1 as DateTime = Now
dim date2 as DateTime = Now.AddSeconds(-30600)  ' 8.5 hours ago
dim lHr as long = DateDiff(DateInterval.Hour, date1, date2) '=-8
dim lMn as long = DateDiff(DateInterval.Minute, date1, date2) '=-510
lHr = DateDiff(DateInterval.Hour, date2, date1)     ' = +8
lMn = DateDiff(DateInterval.Minute, date2, date1)   ' = +510

(在 DateDiff 中还有其他时间间隔、天数、秒数等也会派上用场)请注意,您的值没有四舍五入。使一小时内的分钟数变得容易

num_Minutes_Past_Hour = lMn - lHr * 60     ' = 30
于 2018-05-05T02:46:16.923 回答