1. 场景
- 在金融类项目中,经常会涉及到利息计算,这里讨论一下按月计息的情况下,月数如何计算
2. 需求分析
- 前提条件,计算日期差值的时候,留头去尾,举例01.01-01.02差值为1天
- 月数其实算起来不难,难的是理清楚逻辑,
- 这里提供一种思路,两个日期之间的实际差值与两个日期所在月份的第一天之间的差值进行对比,以下举例说明
- 以“2018.01.31”、“2018.11.30”为例
– 首先2018.11-2018.01 = 10个月
– 其次2018.11.30-2018.01.31 = 303天
– 再其次2018.11.01-2018.01.01 = 304天
– 304天 < 305天,故算出来的10个月即为最终结果
3. 代码逻辑
3.0 以“2018.01.31”、“2018.12.1”为例
3.1 首先计算年月之间的月数差
- 2018.12-2018.01 = 11个月
3.2 其次计算两个日期之间的实际差值
- 2018.11.30-2018.01.31 = 304天
3.3 再次计算两个日期取当月第一天的日期,再计算一次日期差值
- 2018.11.01-2018.01.01 = 334天