2014-11-06 52 views
-2

我有兩個文本框日期(8/11/2014)和(9/11/2014)。我想查找這兩個日期之間的天數。我收到了一些字符串錯誤消息。請幫我..如何查找兩個字符串類型日期的天數?

+10

它們轉換爲正確的日期時間值,然後減去從另一個。 – 2014-11-06 13:29:47

+1

你可以發佈代碼以及錯誤消息嗎?我的心理能力今天在起作用。 – 2014-11-06 13:29:57

+1

@Lasse V. Karlsen,如果你不介意請讓我知道如何將這些字符串日期轉換爲日期時間值? – 2014-11-06 13:31:55

回答

3

只是解析這兩個日期,然後他們。減去和計數總天數是這樣的:

DateTime date1 = DateTime.ParseExact(dateString1, "d/M/yyyy", CultureInfo.InvariantCulture); 
DateTime date2 = DateTime.ParseExact(dateString2, "d/M/yyyy", CultureInfo.InvariantCulture); 
var days = (int)(date2-date1).TotalDays; 
+0

我的date1是(txtdate)和date2是(txtdate1)。它如何轉換爲DateTime – 2014-11-06 13:34:32

+0

只需將dateString1更改爲txtdate,將dateString2更改爲txtdate1 – 2014-11-06 13:35:25

+0

另請注意,我假定11是一個月。如果是一天,你應該改變模式:「MM/dd/yyyy」 – 2014-11-06 13:37:47

2

我覺得承擔風險來回答這個問題,但..

您可以使用DateTime.ParseExactDateTime.TryParseExact方法來解析您的字符串並相互減法並使用TimeSpan.TotalDays property。如果您對總天數感興趣,則可以使用TimeSpan.Days property作爲int而不是double

string txtdate = "8/11/2014"; 
DateTime dt; 
if(DateTime.TryParseExact(txtdate, "d/MM/yyyy", 
          CultureInfo.InvariantCulture, 
          DateTimeStyles.None, out dt)) 
{ 

} 
string txtdate1 = "9/11/2014"; 
DateTime dt1; 
if(DateTime.TryParseExact(txtdate1, "d/MM/yyyy", 
          CultureInfo.InvariantCulture, 
          DateTimeStyles.None, out dt1)) 
{ 

} 

var totaldays = (dt1 - dt).Days; // 1 

said;

我需要輸出爲8/11/2014-9/11/2014 = 1。但我申請你的代碼它 顯示輸出像1.0?

我告訴你TotalDays屬性返回doubleDays屬性返回int。但除此之外,你看起來像是9/11/2014 - 8/11/2014 = 1而不是僅僅是1。在這種情況下,您可以使用string.Format;

var result = string.Format("{0} - {1} = {2}", 
          dt1.ToString("d/MM/yyyy", CultureInfo.InvariantCulture), 
          dt.ToString("d/MM/yyyy", CultureInfo.InvariantCulture), 
          totaldays); 

result9/11/2014 - 8/11/2014 = 1

+0

對不起8天和9天的格式是「dd/MM/yyyy」 – 2014-11-06 13:45:19

+0

@DwaneMarsh你是什麼意思他們是_dates_?你的意思是幾天?你期望的總日數是多少? – 2014-11-06 13:46:44

+0

這是幾天的赦免。輸入錯誤 – 2014-11-06 13:48:33

相關問題