我有原则:
int MonthNow = System.DateTime.Now.Month; int YearNow = System.DateTime.Now.Year; int DayNow = System.DateTime.Now.Day;
我怎样才能得到 C # 中的昨天和明天、月份和年份?
当然,我可以写:
DayTommorow = DayNow +1;
但是明天可能是另外一个月或者一年。在 C # 内置的工具中是否有昨天和今天的发现?
你想要 DateTime.Today.AddDays(1)。
DateTime.Today.AddDays(1)
诀窍是使用“ DateTime”来操作日期; 只有在需要从日期得到“最终结果”时才使用整数和字符串。
For example (pseudo code):
获取“明天的日期时间 = 现在 + 1”
确定结果日期的日期,星期的日期,月的日期——无论你想要什么。
DateTime tomorrow = DateTime.Today.AddDays(1); DateTime yesterday = DateTime.Today.AddDays(-1);
使用 DateTime.AddDays()(MSDN Documentation DateTime.AddDays Method)。
DateTime.AddDays()
DateTime tomorrow = DateTime.Now.AddDays(1); DateTime yesterday = DateTime.Now.AddDays(-1);
今天:
DateTime.Today
Tomorrow :
昨日:
DateTime.Today.AddDays(-1)
你可以在 空气污染指数参考资料中找到这些信息。
var today = DateTime.Today; var tomorrow = today.AddDays(1); var yesterday = today.AddDays(-1);
你应该这样做,如果你想得到昨天和明天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时间。
To get "local" yesterday in UTC.
var now = DateTime.Now; var yesterday = new DateTime(now.Year, now.Month, now.Day, 0, 0, 0, DateTimeKind.Utc).AddDays(-1);
注意不要在结果中添加不需要的时区,特别是当日期将通过 Web API 发送时。改为使用 UtcNow,使其没有时区。