【问题标题】:Converting Double to Time Format将双精度转换为时间格式
【发布时间】:2013-03-16 03:23:23
【问题描述】:

我有一堆数字,例如 1.56722.654220.123 我想将它们转换为 00:00:00.000 (hours/Minutes/Seconds.Miliseconds) 中的时间

关于如何有效实现这一点的任何建议?没有太多的摆弄。

如果可能,我需要一个 vb.net 解决方案。

提前感谢您的帮助。

【问题讨论】:

    标签: vb.net type-conversion


    【解决方案1】:

    使用DateTime.AddHours 方法。它将double 值作为参数:

    Dim d as DateTime = (new DateTime()).AddHours(1.567)
    

    结果是{0001-01-01 01:34:01}

    然后您可以使用DateTime.ToString() 方法获取所需格式的时间:

    Dim s as String = d.ToString("HH:mm:ss.fff")
    

    结果是"01:34:01.200"

    它适用于从023.99 的所有值

    更新

    如果您的输入值代表小时并且可以大于 24,您可以使用 TimeSpan 而不是 DateTime

    Dim d as TimeSpan = TimeSpan.FromHours(220.123)
    Dim s As String = string.Format("{0}:{1}:{2}.{3}", CInt(d.TotalHours), d.Minutes, d.Seconds, d.Milliseconds)
    

    【讨论】:

    • @Teejay :这是可能的,尽管提问者没有指定给定数据的预期“输出”是什么。
    • 这看起来是完美的解决方案 :) 我会告诉你进展如何......谢谢
    • @MarcinJuraszek 我想了,没说你的回答错了:)
    • 如果双数大于 60,我必须将所有内容都包含在 IF 语句中总而言之,一个出色的解决方案)工作得非常好。感谢您的帮助。
    猜你喜欢
    • 2017-09-30
    • 1970-01-01
    • 2015-09-13
    • 2010-10-16
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多