【发布时间】:2016-11-16 05:27:51
【问题描述】:
我需要帮助来获取当前日期的六个月范围。例如,如果当前日期是02-Feb-2016,那么我想要开始日期01-Sep-2015 和结束日期29-Feb-2016。
我已经尝试了代码:
DateTime date = new DateTime(2016,02,06);
DateTime endDate = new DateTime(date.Year, date.Month, 1).AddMonths(1).AddDays(-1);
DateTime startDate = endDate.AddMonths(-6);
输出是:
Startdate: 29-Aug-2015 endDate: 29-Feb-2016
但我想要以下输出:
Startdate: 01-Sep-2015 endDate: 29-Feb-2016
更新:
我已经用我尝试过并输出的示例更新了问题。
juharr 的评论是我的工作。
【问题讨论】:
-
除非你给它一个负值,否则
DateTime.AddMonths()到底为什么要减去天?请向我们展示你的代码和你得到的输出。 -
您所期望的范围内的这些日期似乎都与您所说的当前日期无关。你能解释一下你真正想要什么吗?您是指当前月份而不是日期吗?
-
6 个月的规则不明确。您是指在当月月底结束的 6 个月,还是定义了特定的 6 个月期间(始终为 9 月至 2 月至 9 月)?
-
@VisualVincent 你回答了你自己的问题。这样做并不像您想象的那么罕见
-
将
startDate更改为new DateTime(date.Year, date.Month, 1).AddMonths(-5);