/// <summary>
/// 计算退休年龄
/// </summary>
/// <param name="birthDate">生日</param>
/// <param name="originalRetirementAge">原退休年龄</param>
/// <returns></returns>
public static DateTime CalculateRetirementDate(DateTime birthDate,int originalRetirementAge)
{
// 基本设置
DateTime policyStartDate = new DateTime(2025, 1, 1);
// 计算原退休日期
DateTime originalRetirementDate = birthDate.AddYears(originalRetirementAge);
// 计算政策开始日期到原退休日期的月数差异
long monthsBetween = Math.Abs((policyStartDate.Year*12+policyStartDate.Month) - (originalRetirementDate.Year*12+ originalRetirementDate.Month))+1 ;
// 计算政策开始日期到原退休日期的天数差异
long daysBetween = (originalRetirementDate-policyStartDate).Days;
// 如果月数差异为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.Ceiling((double)monthsBetween / 4);
if (monthsToAdd > 36)
{
monthsToAdd = 36;
}
break;
case 50:
// 原法定退休年龄为50岁的女职工:每2个月延迟1个月,逐步延迟至55岁
monthsToAdd = (int)Math.Ceiling((double)monthsBetween / 2);
if (monthsToAdd > 60)
{
monthsToAdd = 60;
}
break;
default:
break;
}
// 计算最终的退休日期
return originalRetirementDate.AddMonths(monthsToAdd);
}
.net用C# 实现2025年1月1日起最新退休年龄算法
于 2025-01-20 13:57:56 首次发布