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


100

我有一个代码:

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

如何使用C#来获取昨天和明天的日,月和年?

当然,我可以这样写:

DayTommorow = DayNow +1;

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


DayNow + 1或的问题- 1是,如果这是该月的最后一天,则无法正常工作。DateTime.Now.Day只是当前日期的整数表示。
Gary.S 2011年

Answers:


125

您可以在API参考中找到此信息。

var today = DateTime.Today;
var tomorrow = today.AddDays(1);
var yesterday = today.AddDays(-1);

28
请发布可能的链接网站的相关部分,而不是链接到该网站
JMax 2011年

JMax,好的。该链接用于DateTime.AddDays方法,该方法允许添加/减去天。与更通用的DateTime.Add方法相比,这在问题的上下文中更易于使用。
Tabrez

5
...而这可能是您答案的详细部分:)。
C4d


17

今天:

DateTime.Today

明天:

DateTime.Today.AddDays(1)

昨天:

DateTime.Today.AddDays(-1)

16

如果您想在昨天和明天的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。


15

你要DateTime.Today.AddDays(1)



2

诀窍是使用“ DateTime”来操纵日期。仅在需要从日期开始的“最终结果”时才使用整数和字符串。

例如(伪代码):

  1. 获取“明天的DateTime =现在+1”

  2. 确定结果日期的日期,星期几,每月几号-任意选择。



0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.