近日,延迟退休话题如同一颗重磅炸弹,在全网引发了热烈的讨论与广泛的关注。这一政策的出台,不仅关乎着每一位劳动者的切身利益,更是对国家经济社会发展具有深远的影响。于是我就想着用MarsCode、TX元宝、文心一言3.5、智谱清言、ChatGpt3.5等ai工具生成一套退休计算器。(讲实话,在某些情况下,代码自动补全还是挺好用,比如:写接口校验时自动提示,但是如果想要用这些工具直接生成完整代码,个人觉得生产力还是有待提升,闲话不多说,先看看各家ai输出,show their the code)
先看几个网上的
现在统一问题:在前端实现一个退休计算器,你可以创建一个简单的网页,利用HTML、CSS和JavaScript来收集用户输入并计算退休年龄。 开问
先问豆包MarsCode
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>退休计算器</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
background-color: #f0f0f0;
}
.container {
background-color: #fff;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
padding: 20px;
text-align: center;
max-width: 400px;
margin: auto;
}
h1 {
color: #333;
}
form label {
display: block;
margin-bottom: 5px;
color: #555;
}
form input,
form select {
width: 100%;
padding: 10px;
margin-bottom: 15px;
border: 1px solid #ddd;
border-radius: 4px;
}
form button {
background-color: #007bff;
color: #fff;
border: none;
border-radius: 4px;
padding: 10px 20px;
cursor: pointer;
transition: background-color 0.3s ease;
}
form button:hover {
background-color: #0056b3;
}
#result {
margin-top: 20px;
color: #333;
font-weight: bold;
}
</style>
</head>
<body>
<div class="container">
<h1>退休计算器</h1>
<form id="retirement-form">
<label for="age">您的年龄:</label>
<input type="number" id="age" required />
<label for="gender">性别:</label>
<select id="gender" required>
<option value="male">男</option>
<option value="female">女</option>
</select>
<button type="submit">计算</button>
</form>
<div id="result"></div>
</div>
<script>
const form = document.getElementById("retirement-form");
const resultDiv = document.getElementById("result");
form.addEventListener("submit", function (e) {
e.preventDefault();
const age = parseInt(document.getElementById("age").value);
const gender = document.getElementById("gender").value;
let retirementAge;
if (gender === "male") {
retirementAge = 60; // 假设男性法定退休年龄为60岁
} else {
retirementAge = 55; // 假设女性法定退休年龄为55岁
}
const currentYear = new Date().getFullYear();
const retirementYear = currentYear + (retirementAge - age);
resultDiv.innerHTML = `您将在 ${retirementYear} 年退休。`;
});
</script>
</body>
</html>
缺少延迟退休算法,大佬们能打几分
好奇~ 豆包和豆包MarsCode生成的代码还不一样。代码就不放文章中了,codepen可以看 大佬们看看这个又打几分
document
.getElementById("calculateBtn")
.addEventListener("click", function () {
const age = parseInt(document.getElementById("age").value);
const gender = document.getElementById("gender").value;
if (isNaN(age) || age < 0) {
alert("请输入有效的年龄");
return;
}
let retirementAge,
originalRetirementAge,
currentYear,
reformRetirementAge;
// 根据性别设置退休年龄
if (gender === "male") {
originalRetirementAge = 60;
reformRetirementAge = 65; // 假设改革后法定退休年龄为65岁
} else {
originalRetirementAge = 55;
reformRetirementAge = 60; // 假设改革后法定退休年龄为60岁
}
// 计算退休时间
currentYear = new Date().getFullYear();
retirementAge = originalRetirementAge - age;
let reformRetirementYear = currentYear + (reformRetirementAge - age);
// 显示结果
const resultDiv = document.getElementById("result");
resultDiv.innerHTML = `
原定退休年龄: ${originalRetirementAge}岁, 剩余时间: ${retirementAge}年<br>
改革后法定退休年龄: ${reformRetirementAge}岁, 退休年份: ${reformRetirementYear}
`;
});
其他几个都是类似的,都是缺失延迟退休具体的算法,导致生成的代码只是一个空壳子
延迟退休逻辑
主要逻辑:计算延迟退休月份
//计算延迟退休月份
const calculateDelayMonths = () => {
const year = date.year();
const month = date.month() + 1;
if (sex === 1) {
if (year < 1965) {
return 0;
}
if (year > 1976) {
return 36;
}
// 计算基本延迟月份数
let baseDelayMonths = Math.ceil(month / 4);
// 根据年份计算额外延迟月份数
let extraDelayMonths = (year - 1965) * 3;
// 总延迟月份数
let delayMonths = baseDelayMonths + extraDelayMonths;
// 特殊情况处理:1976年9月至12月
if (year === 1976 && month >= 9) {
delayMonths = 36;
}
return delayMonths;
}
if (sex === 2) {
if (year < 1970) {
return 0;
}
if (year > 1981) {
return 36;
}
// 计算基本延迟月份数
let baseDelayMonths = Math.ceil(month / 4);
// 根据年份计算额外延迟月份数
let extraDelayMonths = (year - 1970) * 3;
// 总延迟月份数
let delayMonths = baseDelayMonths + extraDelayMonths;
// 特殊情况处理:1981年9月至12月
if (year === 1981 && month >= 9) {
delayMonths = 36;
}
return delayMonths;
}
if (sex === 3) {
if (year < 1975) {
return 0;
}
if (year > 1984) {
return 60;
}
// 计算基本延迟月份数
let baseDelayMonths = Math.ceil(month / 2);
// 根据年份计算额外延迟月份数
let extraDelayMonths = (year - 1975) * 6;
// 总延迟月份数
let delayMonths = baseDelayMonths + extraDelayMonths;
// 特殊情况处理:1984年11月至12月
if (year === 1984 && month >= 11) {
delayMonths = 60;
}
return delayMonths;
}
};
dom 因为是准备同步h5、小程序,所以使用的Taro开发
<View className='content'>
<View className='h2'>快查~你最新的延迟退休年龄</View>
<View className='tips'>
按照《关于实施渐进式延迟法定退休年龄的决定》附表对照关系,您通过法定退休年龄计算器,选择出生年月、性别及人员类型,即可计算出对应的
改革后法定退休年龄、改革后退休时间、延迟月数。
</View>
<View
style={{
padding: "8px 24px",
}}
>
<View className='label' style={{ width: "auto", minWidth: "140px" }}>
   出生年月:
</View>
<Picker
mode='date'
style={{ width: "240px" }}
onChange={(d) => {
const { value } = d.detail
setDate(moment(value, "YYYY-MM-DD"));
}}
picker='month'
placeholder='请选择出生年月'
>
<View className='picker'>{date ? date.format("YYYY-MM-DD") : '请选择出生年月'}</View>
</Picker>
</View>
<View
>
<View className='label' style={{ width: "auto", minWidth: "140px" }}>
性别及人员类型:
</View>
<Picker
mode='selector'
range={selector}
style={{ width: "240px" }}
rangeKey='label'
onChange={(e) => {
const { value } = e.detail;
setSex(Number(value) + 1);
}}
>
<View className='picker'>{sex ? selectorMap[sex] : '请选择性别'}</View>
</Picker>
</View>
<View className='btn'>
<Button
type='default'
onClick={() => {
if (!date || !sex) {
Taro.showToast({
title: "请选择出生年月和性别",
icon: "error",
duration: 2000,
});
return;
}
handleSubmit()
>
计算
</Button>
</View>
<View
className='result'
>
{age && (
<View
style={{
padding: "8px 24px",
}}
>
<Text style={{ width: "120px" }}>您的改革后法定退休年龄为:</Text>
<Text>{age}</Text>
</View>
)}
{offTime && (
<View
style={{
padding: "8px 24px",
}}
>
<Text style={{ width: "120px" }}>您的改革后退休时间为:</Text>
<Text>{offTime}</Text>
</View>
)}
{delayMonths && (
<View
style={{
padding: "8px 24px",
}}
>
<Text style={{ width: "120px" }}>您的延迟月数为:</Text>
<Text>{delayMonths}个月</Text>
</View>
)}
</View>
</View>
个人理解,辅助开发,可以提高开发效率,不可完全依赖~欢迎吐槽
缺点:
优点:
1.强大的 AI 辅助功能:
2.提高部分开发效率
3.持续学习和改进
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。