首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日期相等于去年的当日c#

日期相等于去年的当日c#
EN

Stack Overflow用户
提问于 2015-12-18 13:12:53
回答 1查看 1.3K关注 0票数 0

我正在做一个asp.net项目,在这个项目中,我需要找到与去年相同的日期?

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

如果我们编写这段代码,它就能正常工作。

代码语言:javascript
复制
return cyDate.AddYears(-1).AddDays(1);

但是,如果这一年是闰年,它就不能正常工作。因此,我使用以下代码修复了这个问题

代码语言:javascript
复制
 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);
            }

还有其他合适的方法来做这件事吗?我搜索了一下,但没有找到合适的答案。请帮我一下。

EN

回答 1

Stack Overflow用户

发布于 2015-12-18 18:06:23

DayOfYear是今年#的DateTime概念,所以它是介于1到366之间的整数值。

我想你也许想用这个概念。

当然,由于我不明白您为什么需要这些数据,所以我有点不确定获得这些数据的最佳方法。

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

代码语言:javascript
复制
DateTime oneYearAgo = DateTime.Now.AddDays(-365)

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

代码语言:javascript
复制
DateTime oneYearAgo = DateTime.Now.AddYears(-1).AddDays(1)

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34356529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档