前言
这两天关于延迟退休的话题比较火,官方也退出了延迟退休计算器的小程序,我们使用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
实例演示:
延迟退休计算器演示