在c#中,如何让下一季的最后一天给出日期?
例如,给定日期是2014-12-02,我需要返回日期2015-03-31。
答案 0 :(得分:6)
很简单:
var given = new DateTime(2014, 02, 12);
var result =
given.Date
.AddMonths(3 - (given.Month - 1) % 3)
.AddDays(-given.Day);
//2014-03-31
如果我输入2014-08-12
,我会2014-09-30
。
以下是一年中每个月开始的结果:
这就是你想要的吗?
答案 1 :(得分:0)
请谨慎使用此代码!例如,日期31.01.2018将返回30.03.2018。这将按预期工作:
var given = new DateTime(2018, 01, 31);
var result =
given.Date
.AddMonths(3 - (given.Month - 1) % 3);
result = result.AddDays(-result.Day);
//2018-03-31