我继承了用C#编写的归档程序。之前的开发人员只对归档上个月的数据感兴趣。然而,错过了几个月,我的任务是添加功能,以查看错过了其他几个月。
我坚持的部分是: 在确定错过的月份时,我需要确定月份是当前年份的一部分还是来自上一年度。
当前月份是关键。 如果当前月份是9月,那么从1月到9月的月份将被视为当年。
如果当前月份是9月,则10月到12月被视为上一年。 当然,随着每个月的进展,这将是一个滑动范围。
寻找一些指导。
答案 0 :(得分:6)
除非我遗漏了某些内容,否则您只需将错过的月份日期与DateTime.Today.Month
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);
答案 1 :(得分:1)
使用DateTime.Now.Month它会为您提供实际月份,您可以将其与您描述的其他日期进行比较,如果它小于或等于当前年份,如果它大于上一年。
然后,您可以使用DateTime.Now.AddYears(-1)
在上一年的存档中设置存档日期答案 2 :(得分:0)
您可以获取当前月份数(通过DateTime.Month
)并从比较月中减去它并检查它是否大于零。
样品:
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