首页 > 编程语言 >2025年1月1日起最新退休年龄算法Java实现

2025年1月1日起最新退休年龄算法Java实现

时间:2024-09-19 17:19:58浏览次数:11  
标签:originalRetirementAge Java monthsToAdd 2025 日期 退休年龄 日起 LocalDate 延迟

全国人民代表大会常务委员会关于实施渐进式延迟法定退休年龄的决定icon-default.png?t=O83Ahttps://www.gov.cn/yaowen/liebiao/202409/content_6974294.htm

1、业务代码

/**
     * 计算退休日期
     *
     * @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:
                // 原法定退休年龄为60岁的男职工:每4个月延迟1个月,逐步延迟至63岁
                // 原法定退休年龄为55岁的女职工:每4个月延迟1个月,逐步延迟至58岁
                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);
    }

2、代码实现

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

3、效果图

标签:originalRetirementAge,Java,monthsToAdd,2025,日期,退休年龄,日起,LocalDate,延迟
From: https://blog.csdn.net/UTF8_8/article/details/142365444

相关文章

  • Spire.Doc for Java实现根据关键字位置盖章
    Spire.DocforJava是一款专业的JavaWord组件,开发人员使用它可以轻松地将Word文档创建、读取、编辑、转换和打印等功能集成到自己的Java应用程序中。作为一款完全独立的组件,Spire.DocforJava的运行环境无需安装MicrosoftOffice。Spire.DocforJava能执行多种Word......
  • Java语言程序设计基础篇_编程练习题**18.31 (替换单词)
    目录题目:**18.31(替换单词)习题思路代码示例 运行结果替换前替换后题目:**18.31(替换单词) 编写一个程序,递归地用一个新单词替换某个目录下的所有文件中出现的某个单词。从命令行如下传递参数:javaExercise18_31dirNameoldWordnewWord习题思路(读取路径方......
  • Java 数据类型转换详解:隐式转换(自动转换)与强制转换(手动转换)
    目录前言取值范围从小到大的关系:隐式转换(自动转换)......
  • java 根据模板导出word文档(poi-tl)
    poi-tl是什么poi-tl是一个基于Apache POI的Word模板引擎,也是一个免费开源的Java类库,你可以非常方便的加入到你的项目中,并且拥有着让人喜悦的特性。为什么选择poi-tl方案移植性功能性易用性Poi-tlJava跨平台Word模板引擎,基于ApachePOI,提供更友好的API低代码,准备......
  • 多平台MD5加密与验证的实践:Java、Python、Windows、Linux
    前言在上一篇文章中,我们详细介绍了MD5算法的原理及其应用场景。为了帮助开发者更好地掌握MD5的实际使用方法,本文将通过Java、Python、Windows命令行、以及Linux命令行等多种方式,讲解如何在不同平台上生成和验证MD5摘要。通过这些实例,你可以更灵活地运用MD5来处理数据完整......
  • 最新推出Java面试题,持续更新!
    我国的八股文确实是独树一帜。以美国为例,北美工程师面试比较重视算法(Coding),近几年也会加入Design轮(系统设计和面向对象设计 OOD)和BQ轮(Behavioral question,行为面试问题)。那么为什么国内面试不采取这样的考察方式呢简单来说,互联网IT行业的求职者太多了,如果考察的......
  • 【Java-线程池】
    目录什么是线程池:线程池七大参数:参数详细介绍:1.核心线程数:2.最大线程数:3.线程存活时间:4.时间单位:5. 阻塞工作队列:6.线程工厂:7.拒绝策略:线程池的执行流程:线程池的常用方法:线程池分类:线程池的状态:​编辑什么是线程池:    简单来说,线程池就是帮助我们......
  • java+vue计算机毕设电影院售票网站【源码+开题+论文+程序】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展和人们生活节奏的加快,线上购票已成为现代消费者享受娱乐服务的主要方式之一。电影院作为大众休闲娱乐的重要场所,其售票模式......
  • java+vue计算机毕设电子市场计算机配件报价系统【源码+开题+论文+程序】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,电子市场作为连接消费者与供应商的重要桥梁,其规模与复杂度日益增加。在计算机配件领域,产品种类繁多,价格波动频繁,传统的手工报......
  • java+vue计算机毕设订单管理系统【源码+开题+论文+程序】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着电子商务的蓬勃发展,订单管理成为了企业运营中不可或缺的一环。传统的订单处理方式往往依赖于人工操作,不仅效率低下,而且容易出错,难以满足现代商业......