尧图精选

日期相差计算器:两个日期隔了多少天,距纪念日还剩几天一眼看穿

🕒 发布时间:2026/9/6 7:25:37 📁 来源:尧图网络
选两个日期立刻告诉你中间隔了多少天还顺手换算成几周、几个月、几年和一个「精确的年月日」再填一个目标日期是「还剩 12 天」还是「已过去 3 天」一眼看穿。今天按钮一键填好不用自己翻日历。先看成品再讲这次怎么用华为云 CodeArts 码道 WebUI 一段话把它做出来、部署上线。这个工具做什么它把「算日期差」和「倒数日」两件事并排放进同一个页面两个日期相差选开始和结束日期自动给出自然日天数同时换算成「约 X 周 / X 个月 / X 年」。精确年月日不是简单除以 30而是按日历借位算出「几年几个月几天」。距离今天还剩几天填一个目标日期自动区分「还剩 N 天」「已过去 N 天」「就是今天」三种状态。今日快捷按钮开始日期、结束日期、目标日期三个输入框都能一键设为今天。交换 / 清空开始和结束日期一键对调或一键清空重来。一键复制把「日期相差 精确间隔」的完整文字摘要复制走弹 Toast 提示。渐变背景 毛玻璃卡片响应式适配手机。码道开通免费体验版开始之前先免费开通码道体验版。不需要装任何软件浏览器就能用https://developer.huaweicloud.com/codeartsco.html?sourcedmzntgwsfsourceaddmzntgwwbwz开通后有三种使用方式WebUI浏览器对话、TUI终端命令行和桌面 IDEIDE 插件。本文用 WebUI 版演示。进入 AI 开发者空间浏览器打开 https://devstation.developer.huaweicloud.com/aidevspace?utm_sourceopcsfsqutm_mediumwbwz弹窗「请选择要进入的版本」→ 点击体验版首次使用会跳到华为云登录页扫码登录一次后续浏览器会话复用弹窗「临时凭据自动配置」→ 点击同意沙箱自动创建进入 AI 开发者空间主界面后先等左侧菜单加载出来再找到CodeArts点击它右侧的浏览器图标打开码道 WebUI 对话窗口打开后码道 WebUI 会先和你打招呼下方就是需求输入框小贴士体验版沙箱 3 小时后自动重置生成完记得把index.html下载保存。任务描述在码道 WebUI 输入框粘贴以下需求回车发送开发一个「日期相差计算器」网页应用选择两个日期即可计算它们之间相差多少天按自然日也支持换算成周/月/年并能输入目标日期显示距离今天还剩几天支持今日快捷按钮、结果一键复制界面简洁美观单个网页打开即用。完成后用部署功能部署成可访问的网页应用并告诉我访问地址。这轮码道具体做了什么不是复述通用 AI 能力而是它在这篇项目里的实际动作先探测沙箱环境发现PYTHONHOME指向损坏的python3依次试了python3/python3.11/python3.9都拿不到可用端口最后改用纯 bash 的/dev/tcp扫描找到空闲端口3002。创建/workspace/date-diff-calculator写出单文件index.html约 390 行再检查可用的 HTTP 服务工具发现沙箱里有 Node.js就补了一个 41 行的server.js静态服务器。用node server.js后台起服务并curl自检通过最后拼出内部访问地址。代码亮点以下是index.html里值得关注的设计思路和实现细节。1. 自然日差日期转 UTC 零点再相减闰年、夏令时都不参与统一把日期拼成T00:00:00当 UTC 零点相减后除以一天的毫秒数再四舍五入functiondiffDays(a,b){if(!a||!b)returnnull;constdanewDate(aT00:00:00);constdbnewDate(bT00:00:00);if(isNaN(da)||isNaN(db))returnnull;returnMath.round((db-da)/86400000);}2. 精确年月日按日历借位不是除以 30「几年几个月几天」如果简单按 30 天算会差很远这里按日历拆先年减年、月减月、日减日日不够向上个月借用上个月的实际天数月不够向年借 12functionexactYMD(from,to){letanewDate(fromT00:00:00);letbnewDate(toT00:00:00);letnegfalse;if(ab){constta;ab;bt;negtrue;}letyearsb.getFullYear()-a.getFullYear();letmonthsb.getMonth()-a.getMonth();letdaysb.getDate()-a.getDate();if(days0){months--;constpmnewDate(b.getFullYear(),b.getMonth(),0);dayspm.getDate();}if(months0){years--;months12;}return{years,months,days,neg};}3. 目标日期三态还剩 / 已过去 / 就是今天目标日期和今天做一次diffDays正负号和零分别映射成三种文案letlabel;if(days0)label就是今天;elseif(days0)label还剩${fmtNum(abs)}天;elselabel已过去${fmtNum(abs)}天;4. 复制走的是完整文字摘要复制按钮不是只复制一个数字而是把「日期区间、相差天数、周/月/年近似值、精确间隔」拼成一段可直接粘贴的文本剪贴板 API 失败还会回退到document.execCommand(copy)。直接下载试玩本次生成的项目就是单文件index.html另有一个 Node 静态服务器脚本没有第三方依赖把index.html保存到本地后双击用浏览器打开即可运行。源码同步到公开 Demo Park 仓库Demo Park 仓库https://atomgit.com/deli007/demo_park本案例目录https://atomgit.com/deli007/demo_park/tree/main/codearts-date-calculator总结日期相差计算器把「两个日期差多少天」和「距离目标日期还剩几天」收进一个页面自然日差用「UTC 零点相减」算精确年月日用「按日历借位」算目标日期三态用一个符号判断复制功能带走完整摘要。技术上主要是Date的时区处理、日历借位和动态渲染。后续还可以加农历、工作日排除周末或节假日倒数。如果还没用过码道可以免费开通体验版https://developer.huaweicloud.com/codeartsco.html?sourcedmzntgwsfsourceaddmzntgwwbwz
上一篇/下一篇内容由系统自动关联 返回资讯列表 →