2016-04-21 28 views
-1

我的任務是從固定日期中減去當前日期時獲取天數。C#中的日期減法

<script language="C#" runat="server"> 
    System.DateTime thisDay = DateTime.Today; 
    System.DateTime dateCountFrom = new DateTime(2016, 6, 1, 0, 00, 00); 
</script> 

所以我有2個日期,一切工作都很完美。但是我怎麼能從另一箇中減去一個呢?

(dateCountFrom-thisDay).totaldayscount; 

導致錯誤,嘗試其他方式 - 相同的結果。

我成功只有這樣:

<%= ((DateTime.Now-(new DateTime(2016,6,1))) *-1).TotalDays %> 

但我需要EVAL結果和乘以-1。

任何想法,我可以做到這一點?

+0

[計算兩個日期之間的差異(天數)?](http://stackoverflow.com/questions/1607336/calculate-difference-between-two-dates-number-of-days) – raidensan

+0

商店'(DateTime.Today-new DateTime(2016,6,1).TotalDays'在一個變量中的結果乘以-1 –

+0

「出錯」,您需要告訴我們您得到了哪個錯誤。'totaldayscount'不是'TimeSpan'的成員,但最有可能的是編譯器所抱怨的是'-1',之後再做:' - (DateTime.Now - new DateTime(2016,6,1)) .TotalDays',*或*,因爲' - (ab)= ba'你可以這樣做:'new DateTime(2016,6,1) - DateTime.Now'。 –

回答

0

您應該使用DateTime.Subtract方法,這會在第一時間返回包含差的時間跨度變量日期

TimeSpan diff = dateCountFrom.Subtract(DateTime.Now); 
diff = TimeSpan.FromTicks(diff.Ticks * -1); 

取而代之的是,雖然之間,如果你想讓它乘以-1,你可以只是做相反的總和

TimeSpan diff = DateTime.Now.Subtract(dateCountFrom); 
+0

用'-'運算符對'DateTime'進行抽象描述是完全合法的,並且還會導致時間跨度 – derpirscher

+0

@derpirscher while這是真的,我喜歡Subtract,它只是另一種選擇:) –

0

(thisDay - dateCountFrom).TotalDays(dateCountFrom-thisDay).TotalDays都是完全合法的,並不會導致錯誤。唯一的區別是一個結果是負面的,另一個是正面的。

如果您只需要幾天的兩個日期之間,這個數字無論是哪一個版本,你可以使用

int days = Math.Abs((thisDay - dateCountFrom).TotalDays) 

如果你知道,其中一個日期,將永遠是以後再另一種(例如dateCountFrom將始終在未來)將此用作被減數(即從中減去的日期),並將另一個用作減數(即減去的日期)。那麼天數也總是正面的。

+0

至於我我得到 CS0117:'System.Math'插入 Cove

+0

啊對不起,錯字,它''Math.Abs​​()'會更新 – derpirscher