【问题标题】:subtracting two datetime variable减去两个日期时间变量
【发布时间】:2011-06-27 16:30:12
【问题描述】:

如何获得两个日期时间变量之间的总小时数?

date1=1/1/2011 12:00:00

date2=1/3/2011 13:00:00
datetime date1 ;

datetime date2;

int hours=(date1.date2).hours;

输出为“1”,但我想要两个日期之间的总小时差,即 49 小时

谢谢

【问题讨论】:

    标签: c# asp.net datetime


    【解决方案1】:

    使用TotalHours 代替Hours。请注意,结果是 double - 您可以将其转换为 int 以获得 整个 小时数。 (如果结果是否定的,请检查您想要的行为......)

    来自Hours 的文档:

    属性值:当前 TimeSpan 结构的小时部分。返回值范围从 -23 到 23

    您不想要小时组件 - 您想要整个时间跨度,以小时表示。

    【讨论】:

    • 感谢 Jon。在数据库中,日期时间类型值是 AM PM 格式,我如何将其转换为 24 小时格式,否则我将获得正确的结果而不进行转换
    • @saurabh:这是一个完全不同的问题——从正确获取数据开始。您根本不应该将其作为字符串获取,但我们看不到您用于访问它的任何代码。如果你不知道如何让你的数据库提供者给你一个DateTime而不是一个字符串,我建议你开始一个新问题。
    【解决方案2】:
    int hours = (int) (date2 - date1).TotalHours;
    

    【讨论】:

      【解决方案3】:
              DateTime date1 = new DateTime(2011, 1, 1, 12, 0, 0);
              DateTime date2 = new DateTime(2011, 1, 3, 13, 0, 0);
              TimeSpan ts = date2 - date1;
      
              double hours = ts.TotalHours;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-02-24
        • 1970-01-01
        • 2012-06-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多