vdh*_*ant 15 .net c# logic datetime date
只是想知道是否知道以下的优雅解决方案.
如果我有2009年6月30日,我加上一个月,我希望它到2009年7月31日,而不是2009年7月30日.
这个逻辑基于这样一个事实,即2009年6月30日是6月底,当我加上一个月时,我想要到下个月底.
但如果我在2009年6月29日和我增加一个月,它应该到2009年7月29日.
注意我需要能够添加任意数月,我需要考虑闰年.
此外,我知道这里的逻辑是有问题的,但它是一个业务需求,与月合约要到月底在未来一个月的结束工作.
我想过几个解决方案,但没有一个非常优雅.因此我觉得有人可能会有更好的方法.
干杯安东尼
Jim*_*mmy 34
要检查日期是否是月末,请检查第二天是否是某个月的第一天.你的算法应该是"如果这一天不是月末,加1个月.如果是月末,加一天,加一个月,减去一天."
bool IsEndOfMonth(DateTime date) {
return date.AddDays(1).Day == 1;
}
DateTime AddMonthSpecial(DateTime date) {
if (IsEndOfMonth(date))
return date.AddDays(1).AddMonths(1).AddDays(-1);
else
return date.AddMonths(1);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10211 次 |
| 最近记录: |