2013-07-21 106 views
3

我嘗試編寫減去兩個日期時間字段並將結果返回給TimeSpan對象並返回總時數值的代碼。減去兩個日期時間字段返回錯誤的總時數值

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以利沙@ FSou1

+4

你怎麼能指望米至是0.073166667? ,因爲279/3600給出0.0775這看起來很好 –

+0

請給你的公式來計算你想要的結果 –

回答

10

你只是做

double res = (y - x).TotalHours; 

因爲C#已經知道所以減去dateTime類型並將結果作爲timeSpan

結果因爲差值是279秒,所以它是0.0775。除以60(至分鐘)爲4.65分鐘,再按小時除以60即爲0.0775。

+0

它返回相同的值0.0775 –

+5

你期望的方式0.073166667 @AnasJaber? –

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); 
    } 
} 
+0

你可以將代碼和結果發佈爲文本而不是圖片嗎? –

+0

Yeap,thx的評論 – FSou1