将DateTime转换为整数

时间:2013-01-20 21:08:23

标签: vb.net visual-studio-2010 time integer

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

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

例如Diff = "08:30:12"

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

4 个答案:

答案 0 :(得分:1)

8.30不是Integer

但是,如果您想要一个包含小时和分钟部分的字符串,则可以将TimeSpan.HoursTimeSpan.Minutes属性与String.Format一起使用:

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

Demo

答案 1 :(得分:1)

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

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

当然我认为差异永远不会超过整数

答案 2 :(得分:0)

你可以这样做:

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

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

答案 3 :(得分:0)

您可以使用DateTime.DiffDate函数,该函数返回长

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