根据月份选择确定当前年份或上一年

本文关键字:上一年 选择 | 更新日期: 2023-09-27 18:09:43

我继承了一个用c#编写的存档程序。以前的开发人员只对存档上个月的数据感兴趣。然而,有几个月被遗漏了,我的任务是添加一些功能来查看其他几个月被遗漏了什么。

我卡住的部分是:在确定遗漏的月份时,我需要确定该月份是本年度的一部分还是上一年的月份。

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

如果当月为9月,则10月至12月被视为上一年度。当然,随着时间的推移,这将是一个滑动范围。

寻求指导

根据月份选择确定当前年份或上一年

除非我遗漏了什么,否则您只需将遗漏的月份日期与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);

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

然后您可以使用DateTime.Now.AddYears(-1)

将存档日期设置在上一年的存档上

您可以获得当前月份的数字(通过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