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

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

今日算法第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,这是贝塔炸弹爆炸的准确日期。

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

相关推荐
开心工作室_kaic18 分钟前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
刚刚好ā19 分钟前
js作用域超全介绍--全局作用域、局部作用、块级作用域
前端·javascript·vue.js·vue
qq_17448285751 小时前
springboot基于微信小程序的旧衣回收系统的设计与实现
spring boot·后端·微信小程序
锅包肉的九珍1 小时前
Scala的Array数组
开发语言·后端·scala
心仪悦悦1 小时前
Scala的Array(2)
开发语言·后端·scala
沉默璇年2 小时前
react中useMemo的使用场景
前端·react.js·前端框架
yqcoder2 小时前
reactflow 中 useNodesState 模块作用
开发语言·前端·javascript
2401_882727572 小时前
BY组态-低代码web可视化组件
前端·后端·物联网·低代码·数学建模·前端框架
Swift社区2 小时前
LeetCode - #139 单词拆分
算法·leetcode·职场和发展
心仪悦悦2 小时前
Scala中的集合复习(1)
开发语言·后端·scala