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

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

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

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

相关推荐
其实防守也摸鱼11 分钟前
前端应用的离线暂停更新策略:构建稳定可靠的渐进式部署方案
服务器·前端·数据库·学习·ai·命令行·linux系统
太平洋月光19 分钟前
Antv G2中自定义技巧📊
前端·数据可视化
shmily麻瓜小菜鸡30 分钟前
前端“伪防盗链”方案
前端·javascript·vue.js·bootstrap·echarts
Dovis(誓平步青云)30 分钟前
《如何在CentOS 7中添加Plex官方软件源:解决文件磁盘难管理难题》
linux·运维·服务器·后端·生成对抗网络·centos
mayaairi31 分钟前
JS数组完全指南(含十大操作详解)
开发语言·前端·javascript
道影子1 小时前
《道德经》031兵者不祥,胜以丧礼处之
人工智能·深度学习·算法
花生了什么事o1 小时前
分布式 ID 生成方案:从数据库自增到雪花算法
数据库·分布式·算法
king_linlin1 小时前
算法基础——算法复杂度
c语言·开发语言·数据结构·算法
IT_陈寒1 小时前
Python的线程池把我CPU跑满了,原来少传了个参数
前端·人工智能·后端
喜欢的名字被抢了1 小时前
写-Chrome-扩展时踩过的那些-MV3-的坑
前端·chrome