日期相当于去年的当天c#

时间:2015-12-18 13:12:54

标签: c# asp.net asp.net-mvc

我正在开发一个asp.net项目,我需要找到与去年相当的当日日期?。

假设当前年份日期是“02/26/2015”,那么去年的日期将是“02/27/2015”。

如果我们编写此代码

,它工作正常
return cyDate.AddYears(-1).AddDays(1);

但如果这一年是闰年,它就无法正常运作。所以我通过使用以下代码

来解决这个问题
 if (DateTime.IsLeapYear(cyDate.Year) && ((cyDate.Month > 2) ||  ((cyDate.Month == 2)  && cyDate.Day >= 29 )))
            {
                return cyDate.AddYears(-1).AddDays(2);
            }
            else
            {
                return cyDate.AddYears(-1).AddDays(1);
            }

还有其他合适的方法吗?我搜索过,但没有找到任何正确的答案。请帮帮我。

1 个答案:

答案 0 :(得分:1)

DayOfYear是今年#天的DateTime概念,因此它是1到366之间的整数值。

我想你可能想要使用这个概念。

当然,由于我不明白为什么你会想要这些数据,我有点不确定最好的方法。

如果你真的想要365天前的一天,那就去做吧。

DateTime oneYearAgo = DateTime.Now.AddDays(-365)

如果你真的想要今天的日期,但去年再加上一天,那就去做吧。

DateTime oneYearAgo = DateTime.Now.AddYears(-1).AddDays(1)

为什么你认为你的逻辑应该根据闰年而不是闰年来改变?我强烈建议你仔细检查你的要求,如果它们像你建议的那样复杂,那么编写一个稍微复杂的例程来计算那个日期并没有错。