2011-11-20 29 views
61

昨天和明天的日期時間我有一個代碼:如何獲得在C#

int MonthNow = System.DateTime.Now.Month; 
int YearNow = System.DateTime.Now.Year; 
int DayNow = System.DateTime.Now.Day; 

如何,我可以得到昨天和明天天,月,年的C#?

當然,我可以只寫:

DayTommorow = DayNow +1; 

,但它可能會發生,明天是其他一個月或一年。有沒有在C#內置工具來查明昨天和今天?

+0

'DayNow + 1'或' - 1'的問題在於,如果它是該月份最後一天的第一天,則無法工作。 DateTime.Now.Day只是當前日期的整數表示形式。 –

回答

54

你可以找到這個信息就在API reference

var today = DateTime.Now; 
var tomorrow = today.AddDays(1); 
var yesterday = today.AddDays(-1); 
+27

請在可能的情況下發布鏈接網站的相關部分而不是*僅*鏈接到網站 – JMax

+0

JMax, 當然。該鏈接用於DateTime.AddDays方法,該方法允許添加/減少天數。與更通用的DateTime.Add方法相比,這更易於在問題的上下文中使用。 – Tabrez

+5

...這可能是你的答案的詳細部分:)。 – C4u

12

你想要DateTime.Today.AddDays(1)

2

訣竅是使用「DateTime」來操作日期;只有在需要從日期獲得「最終結果」時才使用整數和字符串。

例如(僞代碼):

  1. 獲取 「日期時間明天=現在,+ 1」

  2. 確定日期,星期,月份的一天 - 任何你想要的 - 的產生日期。

145
DateTime tomorrow = DateTime.Now.AddDays(1); 
DateTime yesterday = DateTime.Now.AddDays(-1); 
+11

這個答案證明了命名的重要性。 – eomeroff

11

使用DateTime.AddDays()MSDN Documentation DateTime.AddDays Method)。

DateTime tomorrow = DateTime.Now.AddDays(1); 
DateTime yesterday = DateTime.Now.AddDays(-1); 
+3

你的昨天是「24小時前」。使用DateTime.Today以標準方式取消日期。 –

14

今天:

DateTime.Today

明天:

DateTime.Now.AddDays(1) 

昨日:

DateTime.Now.AddDays(-1) 
+2

是的,它也會起作用。 – aleroot

12

你應該做這種方式,如果你想在00:00:00的時間去昨天和明天:

DateTime yesterday = DateTime.Today.AddDays(-1); 
DateTime tomorrow = DateTime.Today.AddDays(1); // Output example: 6. 02. 2016 00:00:00 

記住只是光禿禿的,如果你做這種方式:

DateTime yesterday = DateTime.Now.AddDays(-1); 
DateTime tomorrow = DateTime.Now.AddDays(1); // Output example: 6. 02. 2016 18:09:23 

那麼你會得到當前時間減去一天,而不是昨天在00:00:00時間。