【问题标题】:subtracting one time from another in vb.net在 vb.net 中减去一个时间
【发布时间】:2010-04-09 20:01:52
【问题描述】:

我有一个变量 [ Dim mytime = "12:30:00 AM" ]

我想从 TimeOfDay 中减去 mytime,我还想将差值作为整数值...我应该怎么做..

我添加了以下代码

Dim mytime = DateTime.Parse("1:16:00 AM")
Dim result = TimeOfDay - mytime

dim finalresult = result.Seconds

但它给了我负值

【问题讨论】:

    标签: vb.net


    【解决方案1】:

    简单:

    首先,将myTime 转换为DateTime - 直接:

    Dim myTime = #12:30:00 AM#
    

    或者通过解析一个字符串:

    Dim myTime = DateTime.Parse("12:30:00 AM")
    
    Dim result = DateTime.TimeOfDay - myTime
    

    但是你不会得到一个整数——这应该如何工作?整数应该代表什么?相反,你会得到一个TimeSpan

    如果您需要以秒为单位的差异,当然可以提取:

    Dim differenceInSeconds = result.Seconds
    

    几分钟或任何其他组件也是如此。

    【讨论】:

    • 但它给了我以下结果 Operator '-' is not defined for types 'String' 和 'Date'。
    • @testkhan:为什么是字符串?我虽然你想减去两个DateTimes。啊,我明白了……查看我的更新答案。
    【解决方案2】:
    Dim difference As TimeSpan = DateTime.TimeOfDay - DateTime.Parse(mytime)
    

    【讨论】:

    • 两个DateTime 相减的结果是TimeSpan,而不是DateTime 本身。
    • @Red-nosed unicorn 哎呀……我的错。更新,修正了减法的顺序,去掉了我的 C#-y 分号。
    【解决方案3】:

    另外,我认为您正在寻找总秒数,所以

    Dim differenceInSeconds = result.Seconds
    

    应改为:

    Dim differenceInSeconds = result.TotalSeconds
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-09
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多