近日有个报表端的特殊需求,遇到了闰年闰月闰日的处理,具体如下:
新需求,生成一个新字段预警日期(warndate),要求在原表结束日期(enddate)基础上减一年
原表(A)主要涉及三个字段:
1、启始日期(startdate)
2、年数(years)
3、结束日期(enddate)
其中:结束日期=启始日期+年数
问题:启始日期含有2月29日的闰日,而年数(years)不固定,导致结束日期(enddate)可能是闰年也可能非闰年,如果直接减一年,当结束日期前一年为闰年时,会少一天。
例如:
| 启始日期(startdate) | 年数(years) | 结束日期(enddate) | 预警日期 (错误减一年)(warndate) |
预警日期 (正确减一年)(warndate) |
|---|

在生成报表过程中,遇到一个新需求,需要从结束日期(enddate)基础上减一年生成预警日期(warndate)。由于原表(A)中存在闰日,直接减一年会导致闰年情况处理不当。解决方法是,当开始日期(startdate)包含2月29日(闰日)时,先将结束日期加一天,然后减一年,最后再减一天,确保正确计算闰年的情况。
最低0.47元/天 解锁文章
3287

被折叠的 条评论
为什么被折叠?



