首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据月份选择确定本年度或上一年

根据月份选择确定本年度或上一年
EN

Stack Overflow用户
提问于 2011-09-24 04:26:15
回答 3查看 14.8K关注 0票数 3

我继承了一个用C#编写的归档程序。以前的开发人员只对归档上个月的数据感兴趣。然而,我错过了几个月,我的任务是添加功能,看看还错过了哪些月。

我被困住的部分是:在确定错过的月份时,我需要确定该月份是本年度的一部分还是上一年的一部分。

当月是关键。如果当前月份是9月,则从1月到9月的月份被视为本年度。

如果当前月份是9月,则将10月到12月视为上一年。当然,随着每个月的进展,这将是一个滑动的范围。

寻找一些指导。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-24 04:35:35

使用DateTime.Now.Month,它给出了实际的月份,你可以像你所描述的那样与其他日期进行比较,如果它小于或等于,那么它就是当前年,如果它大于前一年。

然后,您可以使用DateTime.Now.AddYears(-1)设置上一年归档的归档日期

票数 1
EN

Stack Overflow用户

发布于 2011-09-24 04:33:24

除非我漏掉了什么,你只需要将你丢失的月份日期与DateTime.Today.Month进行比较

代码语言:javascript
复制
DateTime archiveDate;
if(someMonth > DateTime.Today.Month)
    archiveDate = new DateTime(DateTime.Today.Year - 1, someMonth, 1);
else
    archiveDate = new DateTime(DateTime.Today.Year, someMonth, 1);
票数 6
EN

Stack Overflow用户

发布于 2011-09-24 04:53:28

您可以获取当前月份数字(通过DateTime.Month),并从比较月份中减去它,然后检查它是否大于零。

示例:

代码语言:javascript
复制
int month1 = 5;  //may
int month2 = 4;  //apr
bool isCurrentYear = (month1 - month2 >= 0);  //current year

int month1 = 8;  //aug
int month2 = 11;  //nov
bool isCurrentYear = (month1 - month2 >= 0); //last year
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7534443

复制
相关文章

相似问题

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