【问题标题】:Calculating time between two dates?计算两个日期之间的时间?
【发布时间】:2012-01-31 01:47:22
【问题描述】:

有人可以帮我完成这项工作吗?

我想在 VB.NET 中计算两个日期之间的时间,如下所示:

startdate: 2011/12/30  
enddate: 2011/12/31  

计算: ?小时 ?分钟 ?秒

【问题讨论】:

    标签: vb.net vb.net-2010


    【解决方案1】:

    你可以试试这个

    DateTime startTime = DateTime.Now;
    
    DateTime endTime = DateTime.Now.AddSeconds( 75 );
    
    TimeSpan span = endTime.Subtract ( startTime );
    Console.WriteLine( "Time Difference (seconds): " + span.Seconds );
    Console.WriteLine( "Time Difference (minutes): " + span.Minutes );
    Console.WriteLine( "Time Difference (hours): " + span.Hours );
    Console.WriteLine( "Time Difference (days): " + span.Days );
    

    输出喜欢,

    Time Difference (seconds): 15
    Time Difference (minutes): 1
    Time Difference (hours): 0
    Time Difference (days): 0
    

    和上面的VB.Net等价的:

    Dim startTime As DateTime = DateTime.Now
    
    Dim endTime As DateTime = DateTime.Now.AddSeconds(75)
    
    Dim span As TimeSpan = endTime.Subtract(startTime)
    Console.WriteLine("Time Difference (seconds): " + span.Seconds)
    Console.WriteLine("Time Difference (minutes): " + span.Minutes)
    Console.WriteLine("Time Difference (hours): " + span.Hours)
    Console.WriteLine("Time Difference (days): " + span.Days)
    

    【讨论】:

    • 对于任何使用它的人,请记住 span.Seconds 不会返回以秒为单位的总时间差,而是秒组件的差(最多 59 个)。要返回总差,请使用 span.TotalSeconds、span.TotalMinutes 等。
    • @cybermonkey something like this 是你的朋友...
    • @JamieBarker 是的,但是 OP 明确表示他们想要 VB.NET 代码。这里的一些用户会尝试复制并粘贴代码,认为它会起作用。
    【解决方案2】:

    基于问题,计算两个日期之间的时间,最好使用DateDiff。在下面的示例中,我们还可以将 Hour 替换为 Minute、Second、Month 等:

    Dim timeDif As Long = DateDiff(DateInterval.Hour, startDate, endDate)
    

    使用TimeSpan返回不包括每日周期的时差,见以下代码:

    Dim startDate As Date = Date.Now
    Dim endDate As Date = startDate.AddDays(3)  'add 3 days to startDate
    Dim timeSpan As TimeSpan = endDate.Subtract(startDate)
    Dim difDays As Integer = timeSpan.Days   'get 3 days
    Dim difHr As Integer = timeSpan.Hours    'get 0 hours although 3 days difference
    Dim difMin As Integer = timeSpan.Minutes 'get 0 minutes although 3 days difference
    

    【讨论】:

      【解决方案3】:

      当您减去 2 个 DateTimes 时,您会得到一个 TimeSpan 结构,它包含所有这些属性。

      【讨论】:

        猜你喜欢
        • 2010-09-17
        • 2012-02-13
        • 2021-11-25
        • 2011-08-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多