我有一个代码:
int MonthNow = System.DateTime.Now.Month;
int YearNow = System.DateTime.Now.Year;
int DayNow = System.DateTime.Now.Day;
如何在C#中获得昨天和明天的日,月,年?
当然,我可以写:
DayTommorow = DayNow +1;
但可能会发生明天是其他月份或年份。是否有C#内置工具可以在昨天和今天查找?
答案 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”
确定生成日期的日期,星期几,日期 - 无论您想要什么。
答案 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,以减少时区。