今日算法:蓝桥杯基础题之“星系炸弹”

你好,我是沐爸,欢迎点赞、收藏、评论和关注。

今日算法第4题,如何布置星系炸弹,一起看看吧。

题目

在X星系的广袤空间中漂浮着许多X星人造"炸弹",用来作为宇宙中的路标。

每个炸弹都可以设定多少天之后爆炸。

比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。

有一个贝塔炸弹,2024年8月30日放置,定时为1000天,请你计算它爆炸的准确日期。

JS 代码实现

你是否觉得需要算一年多少天?是否是闰年?其实不用,最简单的思路是,记录放置日期的毫秒数,1000天的毫秒数,就能得到爆炸日期的毫秒数,把毫秒转为日期,就能得出爆炸的准确日期了。

javascript 复制代码
function addDays(date, days) {  
    // 将天数转换为毫秒  
    const millisecondsPerDay = 1000 * 60 * 60 * 24;  
    // 计算总毫秒数  
    const totalMilliseconds = days * millisecondsPerDay;  
    // 创建一个新的Date对象(以避免修改原始日期),并添加毫秒数  
    const result = new Date(date.getTime() + totalMilliseconds);  
    return result;  
}  
  
// 定义起始日期  
const startDate = new Date(2024, 7, 30); // 注意:月份是从0开始的,所以7代表8月  
  
// 计算爆炸日期  
const explosionDate = addDays(startDate, 1000);  
  
// 格式化日期输出  
const year = explosionDate.getFullYear();  
const month = String(explosionDate.getMonth() + 1).padStart(2, '0'); // 月份加1并格式化为两位数  
const day = String(explosionDate.getDate()).padStart(2, '0'); // 格式化为两位数  
  
console.log(`${year}-${month}-${day}`); // 输出格式为 YYYY-MM-DD

这段代码首先定义了一个addDays函数,它接受一个Date对象和一个天数作为参数,并返回一个新的Date对象,该对象表示原始日期加上指定天数后的日期。然后,它使用这个函数来计算从2024年8月30日开始加上1000天后的日期,并格式化输出为YYYY-MM-DD格式。

运行这段代码,你应该会得到输出2027-05-27,这是贝塔炸弹爆炸的准确日期。

好了,分享结束,谢谢点赞,下期再见。

相关推荐
用户938515635072 分钟前
移除数组里的指定元素,你学会了吗?
javascript·算法
ZengLiangYi3 分钟前
Tailwind CSS v4 + Vite:现代前端样式方案
前端·css·vite
好运常在4 分钟前
如何用Python实现办公自动化?
前端
日月云棠4 分钟前
17 Dubbo 2.7 集群容错策略源码解析
java·后端
吃好睡好便好10 分钟前
创建全0矩阵和全1矩阵
开发语言·学习·线性代数·算法·matlab·信息可视化·矩阵
ZC跨境爬虫12 分钟前
跟着 MDN 学CSS day_12 :(值与单位的技能测试与深入理解)
前端·javascript·css·ui·交互
Oneslide21 分钟前
银河麒麟紧Linux 内核CopyFail高危漏洞(CVE-2026-31431)通告
后端
RelishCoding22 分钟前
SpringMVC-01
后端·spring
lichenyang45323 分钟前
从 AI 聊天组件源码复盘工程化架构:MVVM、解耦、Provider 与 SSE 流式响应
前端
Maimai1080827 分钟前
TanStack Table 入门:为什么它是 React 表格开发里的“表格引擎”
前端·javascript·react.js·架构·前端框架·reactjs