最新法定退休年龄日期计算

法定年龄计算只需要知道原来法定退休年份即可,所以此处不做男女判断计算方法代码:

/**
     * 计算退休日期
     *
     * @param birthDate             出生日期
     * @param originalRetirementAge 原退休年龄
     * @return {@link LocalDate }
     */
    public static LocalDate calculateRetirementDate(LocalDate birthDate, int originalRetirementAge) {
        // 基本设置
        LocalDate policyStartDate = LocalDate.of(2025, 1, 1);

        // 计算原退休日期
        LocalDate originalRetirementDate = birthDate.plusYears(originalRetirementAge);

        // 计算政策开始日期到原退休日期的月数差异
        long monthsBetween = ChronoUnit.MONTHS.between(policyStartDate, originalRetirementDate)+1L;
        long daysBetween = ChronoUnit.DAYS.between(policyStartDate, originalRetirementDate);

        // 如果月数差异为0或负值,直接返回原退休日期
        if (daysBetween < 0) {
            return originalRetirementDate;
        }

        // 计算调整后月份
        int monthsToAdd = 0;

        switch (originalRetirementAge) {
            case 60:
            case 55:
                monthsToAdd = (int) Math.ceil((double) monthsBetween / 4);
                if (monthsToAdd > 36) {
                    monthsToAdd = 36;
                }
                break;
            case 50:
                // 原法定退休年龄为50岁的女职工:每2个月延迟1个月,逐步延迟至55岁
                monthsToAdd = (int) Math.ceil((double) monthsBetween / 2);
                if (monthsToAdd > 60) {
                    monthsToAdd = 60;
                }
                break;
            default:
                break;
        }

        // 计算最终的退休日期
        return originalRetirementDate.plusMonths(monthsToAdd);
    }

使用方法:

public static void main(String[] args) {
        // 测试用例
        LocalDate birthDate = LocalDate.of(1984, 9, 24); // 出生日期
        int originalRetirementAge = 50; // 原法定退休年龄
        LocalDate retirementDate = calculateRetirementDate(birthDate, originalRetirementAge);
        System.out.println("计算出的退休日期为:" + retirementDate);
    }

输出结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值