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

时间:2011-09-23 20:26:15

标签: c# date

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

我坚持的部分是: 在确定错过的月份时,我需要确定月份是当前年份的一部分还是来自上一年度。

当前月份是关键。 如果当前月份是9月,那么从1月到9月的月份将被视为当年。

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

寻找一些指导。

3 个答案:

答案 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