前言
 这两天关于延迟退休的话题比较火,官方也退出了延迟退休计算器的小程序,我们使用python来实现一个。
 
环境配置
 系统:windows
 平台:visual studio code
 语言:python
 库:pyqt6
程序依据
 程序的算法依据是政府发出的渐进式延迟退休公告,以下是其中涉及计算规则的内容:
第一条 从2025年1月1日起,男职工和原法定退休年龄为五十五周岁的女职工,法定退休年龄每四个月延迟一个月,分别逐步延迟至六十三周岁和五十八周岁;原法定退休年龄为五十周岁的女职工,法定退休年龄每二个月延迟一个月,逐步延迟至五十五周岁。国家另有规定的,从其规定。
其规则是:
 1、男职工:延迟时间从1个月开始,每4个月加1,直到满36个月,即3年
 2、女职工:
 原50退:延迟时间从1个月开始计,每2个月加1,直到60个月,即5年
 原55退:同男职工
程序实现
 从规则上看,要区分男性和女性,因为退休岁数不同。我们可以添加一个列表框,根据选择的不同,来调用不同的函数。
 比如,如果选择了男职工,那么起始计算日期就是1965年1月1日。
 再添加一个出生年月日选择器,在获取了用户的出生年月日后,对年、月进行处理。
 大致逻辑是用户出生日期减去基准日期(如1965),然后根据差值,计算要增加的月数,每多4个月,延迟退休就加一个月。
 函数大致如下:
def txage_cal_male(self,age:Age):      
        """男性职工退休年龄计算"""
        
        tx_age=0
        now_tx_age=0
        month_need_to_add=0
        month_extra=0
        
        year_diss=age.Year-1965
        month_diss=age.Month-0
        
        if age.Year < 1965:
            self.lbl_tips.setText('您已经退休!')
            tx_age=age.Year + 60
            now_tx_age=tx_age
            month_need_to_add=0
            
        elif age.Year > 1976:
                
                self.lbl_tips.setText('您还得继续搬砖!')
                month_need_to_add=36
                
                now_tx_age=age.Year + 60 + 3
                
                month_extra=age.Month
                
        else:
                self.lbl_tips.setText('您还得继续搬砖!')
                month_year=year_diss * 12
                month_month=month_diss
                month_need_1=month_year // 4
                month_need_2=(month_month - 1) // 4
                
                month_need_to_add=month_need_1 + month_need_2
                
                if month_need_to_add > 36:
                    
                    month_need_to_add=36
                
                year_temp=month_need_to_add // 12
                month_temp=(month_need_to_add % 12)
                
                month_temp2=month_temp + age.Month
                month_temp3_year=month_temp2 // 12
                month_temp3_month=(month_temp2 % 12) + 1
                now_tx_age=age.Year + 60 + year_temp+month_temp3_year
                month_extra=month_temp3_month
                
        tx_age=age.Year + 60
        
        return tx_age,now_tx_age,month_extra
实例演示:
延迟退休计算器演示





![[Golang] Channel](https://img-blog.csdnimg.cn/img_convert/9a50f6e400871416a27c4c6b16d51301.png)













