如何在c#中获取昨天和明天的日期时间

时间:2011-11-20 19:04:21

标签: c# datetime

我有一个代码:

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

如何在C#中获得昨天和明天的日,月,年?

当然,我可以写:

DayTommorow = DayNow +1;

但可能会发生明天是其他月份或年份。是否有C#内置工具可以在昨天和今天查找?

9 个答案:

答案 0 :(得分:156)

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

答案 1 :(得分:85)

您可以在API reference

中找到此信息
var today = DateTime.Now;
var tomorrow = today.AddDays(1);
var yesterday = today.AddDays(-1);

答案 2 :(得分:16)

今天:

DateTime.Today

明天:

DateTime.Now.AddDays(1)

昨天:

DateTime.Now.AddDays(-1)

答案 3 :(得分:14)

您想要DateTime.Today.AddDays(1)

答案 4 :(得分:14)

你应该这样做,如果你想在昨天和明天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时。

答案 5 :(得分:13)

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

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

答案 6 :(得分:2)

诀窍是使用“DateTime”来操纵日期;当你需要从日期开始的“最终结果”时,只使用整数和字符串。

例如(伪代码):

  1. 获取“明天的日期时间=现在+ 1”

  2. 确定生成日期的日期,星期几,日期 - 无论您想要什么。

答案 7 :(得分:0)

昨天在UTC获得“本地”。

  var now = DateTime.Now;
  var yesterday = new DateTime(now.Year, now.Month, now.Day, 0, 0, 0, DateTimeKind.Utc).AddDays(-1);

答案 8 :(得分:0)

请注意不要在结果中添加不必要的时区,尤其是当日期将通过Web API发送时。请改用UtcNow,以减少时区。