您如何将随机生成的时间转换为整数,这就是我格式化时间的方式;
StartTime = FormatDateTime(Now, DateFormat.LongTime)
EndTime = FormatDateTime(Now, DateFormat.LongTime)
Diff = (EndTime - StartTime.Subtract(TimeSpan))
所以例如Diff = "08:30:12"
我希望能够在 8 小时 30 分钟内将其转换为“8.30”。
您如何将随机生成的时间转换为整数,这就是我格式化时间的方式;
StartTime = FormatDateTime(Now, DateFormat.LongTime)
EndTime = FormatDateTime(Now, DateFormat.LongTime)
Diff = (EndTime - StartTime.Subtract(TimeSpan))
所以例如Diff = "08:30:12"
我希望能够在 8 小时 30 分钟内将其转换为“8.30”。
8.30 不是Integer
.
但是,如果您想要一个带有小时和分钟部分的字符串,您可以使用TimeSpan.Hours
andTimeSpan.Minutes
属性:String.Format
String.Format("{0}.{1}", Diff.Hours, Diff.Minutes)
您说您想要 Diff 结果的整数表示。
假设 Diff 是一个 TimeSpan 结构,为什么不简单地使用呢?
Dim x as Integer
x = Convert.ToInt32(Diff.TotalMinutes)
当然我假设差异永远不会大到溢出整数
你可以做 :
Dim d As Decimal
d = Diff.Hours + Diff.Minutes / 100D
100D 给出了除法所需的小数。整数除法 30/100 给出 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