2016-08-31 200 views
-4

對不起對於基本的答案,但我努力尋找一種方法將DateTime.Today轉換爲int。 這並不工作,但你可以假設打算什麼IM爲將DateTime.Today轉換爲int c#

int CurrentDay = DateTime.Today; 

感謝任何幫助都沒有。

+2

你有什麼期望'CurrentDay' 成爲?自「DateTime.MinValue」以來的月份或一天中的哪一天? –

+1

什麼是int? –

+0

這取決於,但也許你想'int oaDayCount =(int)(DateTime.Today.ToOADate());'。另一種可能性是'int totalDayCount =(int)(DateTime.Today.Ticks/TimeSpan.TicksPerDay);'。 –

回答

8

使用Day物業:

int currentDay = DateTime.Today.Day; 

獲取此實例所表示的一個月的一天。

您還可以在需要時使用DayOfWeekDayOfYear

0

你必須將今天轉換爲字符串,刪除點並轉換爲int。

你可以嘗試:

int currentday = Convert.ToInt32(DateTime.Today.ToShortDateString().Replace(".", "")); 

您可能如果添加使用時間長。

這個問題在過去幾次被Stack Overflow問過。 例如,看看這個答案:

Click here

然後,看看更多的鏈接和相關的問題/回答這個問題/答案右側立柱。

可以在堆棧溢出(在右上角的搜索字段)的關鍵字

[C#]轉換日期時間爲int

谷歌搜索會導致您的問題的解答,也搜索。例如,使用關鍵字

C#轉換日期時間爲int

我知道這應該是一個評論,但我不能這樣做,因爲我代表的,對不起。

0

您可以將日期時間存儲作爲該解決方案的數量,只要求你必須把它存儲爲一個Int64,如果你還需要時間部分:

[TestMethod] 
public void DateTimeToInt64() 
{ 
    long ticks = DateTime.Today.Ticks; 

    DateTime dateTimeFromTicks = new DateTime().AddTicks(ticks); 

    Assert.AreEqual(dateTimeFromTicks, DateTime.Today); 
} 

對於情況下,你不需要日期的時間部分:

[TestMethod] 
public void DateTimeToInt32() 
{ 
    var dateTimePattern = "yyyyMMdd"; 
    int numericDateTime = Convert.ToInt32(DateTime.Today.ToString(dateTimePattern)); 

    DateTime dateTimeFromInt32 = DateTime.ParseExact(numericDateTime.ToString(), dateTimePattern, CultureInfo.InvariantCulture); 

    Assert.AreEqual(dateTimeFromInt32, DateTime.Today); 
} 

或者使用OADate

[TestMethod] 
public void DateTimeToOADate() 
{ 
    double oADate = DateTime.Today.ToOADate(); 

    DateTime dateTimeFromOAdate = DateTime.FromOADate(oADate); 

    Assert.AreEqual(dateTimeFromOAdate, DateTime.Today); 
}