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

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

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

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

相关推荐
fantasy_arch5 分钟前
SVT-AV1 B帧决策和mini-GOP决策分析
算法·av1
声声codeGrandMaster7 分钟前
逻辑回归-泰坦尼克号
算法·机器学习·逻辑回归
不老刘10 分钟前
前端面试八股文:JavaScript 原型链
javascript·原型链
行走的陀螺仪12 分钟前
使用uniapp,实现根据时间倒计时执行进度条变化
前端·javascript·uni-app·vue2·h5
科技D人生18 分钟前
Vue.js 学习总结(19)—— Vue3 按钮防重复点击三种方案总结
前端·vue.js·uniapp·vue3 防重复提交·uniapp 防重复提交·前端防抖
superman超哥20 分钟前
Rust 发布 Crate 到 Crates.io:从本地到生态的完整旅程
开发语言·后端·rust·crate·crates.io
指尖跳动的光27 分钟前
前端视角-如何保证系统稳定性
前端
John_ToDebug29 分钟前
Chromium WebUI 定制实践:从 C++ 注入到 JS 安全展示全链路解析
javascript·c++·chrome
fruge30 分钟前
2025全栈技术深耕与实践:从框架融合到工程落地
前端
拼命_小李33 分钟前
使用intro.js实现简单下一步引导demo
javascript