在c#中,如何获得下一季度的最后一天给出日期。

时间:2015-01-28 22:41:52

标签: c#

在c#中,如何让下一季的最后一天给出日期?

例如,给定日期是2014-12-02,我需要返回日期2015-03-31。

2 个答案:

答案 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

以下是一年中每个月开始的结果:

results

这就是你想要的吗?

答案 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