减去两个日期时间字段返回错误的总小时值

时间:2013-07-21 06:58:21

标签: c# .net c#-4.0 datetime

我尝试编写减去两个日期时间字段的代码,并将结果返回给TimeSpan对象并返回Total Hours值。

DateTime x = new DateTime(2013, 7, 18, 12, 57, 40);
DateTime y = new DateTime(2013, 7, 18, 13, 2, 19);
double m = y.Subtract(x).TotalHours;

我预计m的值是0.073166667,但实际结果是0.0775为什么?

修改

对不起,我错误地使用谷歌计算器BTW谢谢你@Liran Elisha和@ FSou1

2 个答案:

答案 0 :(得分:8)

你刚刚做了

double res = (y - x).TotalHours;

因为c#已经知道如此减去dateTime类型并将结果作为timeSpan

返回

结果为0.0775,因为差异为279秒。除以60(至分钟)为4.65分钟,再分为60小时为0.0775,你得到了。

答案 1 :(得分:3)

不明白为什么你期望0.073的结果,但希望它有所帮助:

enter image description here

<强>代码:

class Program
{
    static void Main(string[] args)
    {
        DateTime x = new DateTime(2013, 7, 18, 12, 57, 40);
        DateTime y = new DateTime(2013, 7, 18, 13, 2, 19);
        double seconds = y.Subtract(x).TotalSeconds;
        double minuits = y.Subtract(x).TotalMinutes;
        double hours = y.Subtract(x).TotalHours;
        Console.WriteLine("seconds: " + seconds + ", minuits: " + ((float)seconds / 60) + ", hours: " + ((float)seconds / 3600));
        Console.WriteLine("seconds: " + seconds + ", minuits: " + minuits + ", hours: " + hours);
    }
}