/** * 生成随机时间函数 * @returns {string} 格式为HH:MM:SS的随机时间字符串 */ function 随机时间() { // 生成随机小时、分钟和秒数 var hours = Math.floor(Math.random() * 24); var minutes = Math.floor(Math.random() * 60); var seconds = Math.floor(Math.random() * 60);
// 格式化时间为两位数 hours = hours < 10 ? '0' + hours : hours; minutes = minutes < 10 ? '0' + minutes : minutes; seconds = seconds < 10 ? '0' + seconds : seconds;
// 返回格式化后的时间字符串 return hours + ':' + minutes + ':' + seconds; }
// 示例调用 printl("生成的随机时间: " + 随机时间());
// 额外示例:生成10个随机时间 printl("\n生成10个随机时间:"); for (let i = 0; i < 10; i++) { printl(随机时间()); }
/* ========== 随机时间的妙用 ========== */ // 1. 模拟日志时间戳 printl("\n模拟日志时间戳:"); function 模拟日志(内容) { printl("[" + 随机时间() + "] " + 内容); } 模拟日志("系统启动完成"); 模拟日志("用户登录成功"); 模拟日志("数据处理完毕");
// 2. 生成随机闹钟时间 printl("\n今日随机闹钟建议:"); var 闹钟次数 = 3; for (var i = 1; i <= 闹钟次数; i++) { printl("闹钟" + i + ": " + 随机时间()); }
// 3. 测试数据生成器 (ES5兼容版本) printl("\n生成测试数据集(5条):"); var 测试数据 = []; for (var i = 0; i < 5; i++) { 测试数据.push({ id: Math.floor(Math.random() * 1000), time: 随机时间(), status: ["成功", "失败", "进行中"][Math.floor(Math.random() * 3)] }); } // 兼容性更好的输出方式 测试数据.forEach(function(item) { printl("ID: " + item.id + " | 时间: " + item.time + " | 状态: " + item.status); });
// 4. 随机延时任务模拟 (ES5兼容版本) printl("\n随机延时任务模拟:"); function 格式化时间(date) { var hours = date.getHours(); var minutes = date.getMinutes(); var seconds = date.getSeconds(); hours = hours < 10 ? '0' + hours : hours; minutes = minutes < 10 ? '0' + minutes : minutes; seconds = seconds < 10 ? '0' + seconds : seconds; return hours + ":" + minutes + ":" + seconds; }
function 随机延时任务(任务名, 回调) { // 生成1-10秒的随机延时(毫秒) var 延时毫秒 = Math.floor(Math.random() * 10000) + 1000; var 开始时间 = new Date(); var 开始时间显示 = 格式化时间(开始时间); printl("[" + 开始时间显示 + "] 任务\"" + 任务名 + "\"将在 " + (延时毫秒/1000).toFixed(3) + "秒后执行"); setTimeout(function() { var 结束时间 = new Date(); var 结束时间显示 = 格式化时间(结束时间); printl("[" + 结束时间显示 + "] 任务\"" + 任务名 + "\"执行完成,实际等待: " + ((结束时间-开始时间)/1000).toFixed(3) + "秒"); if (typeof 回调 === 'function') { 回调(); } }, 延时毫秒); }
// 使用回调方式执行延时任务 printl("\n开始执行延时任务序列:"); 随机延时任务("数据备份", function() { printl("-- 数据备份任务完成,开始缓存清理 --"); 随机延时任务("缓存清理", function() { printl("\n所有延时任务已完成"); printl("======================="); printl("任务执行总结:"); printl("1. 数据备份 - 已完成"); printl("2. 缓存清理 - 已完成"); printl("======================="); }); });
// 5. 游戏开发应用 - 随机事件触发 printl("\n游戏随机事件模拟:"); function 随机事件() { var 事件时间 = 随机时间(); var 事件类型 = ["宝箱出现", "Boss刷新", "任务更新"][Math.floor(Math.random() * 3)]; printl("[" + 事件时间 + "] " + 事件类型); } 随机事件(); 随机事件();
- 核心功能 - 随机时间生成:
function 随机时间() {
// 生成HH:MM:SS格式的随机时间
// 示例输出:"14:25:36"
}
- 生成24小时制的随机时间
- 自动补零确保两位数格式
- 可作为基础功能被其他模块调用
- 五大应用场景:
a) 日志模拟:
function 模拟日志(内容) {
printl("[" + 随机时间() + "] " + 内容);
}
// 示例:[14:25:36] 系统启动完成
b) 闹钟生成:
// 生成3个随机闹钟时间
// 示例输出:闹钟1: 07:53:20
c) 测试数据生成:
// 生成包含随机时间的测试数据
// 示例输出:ID: 123 | 时间: 08:45:22 | 状态: 成功
d) 延时任务模拟:
function 随机延时任务(任务名, 回调) {
// 示例输出:[14:30:22] 任务"数据备份"将在 3.5秒后执行
// 实际执行后会输出完成时间和等待时长
}
- 模拟随机延时的异步任务
- 显示精确的执行时间差
- 支持任务链式调用
e) 游戏事件触发:
// 示例输出:[16:10:47] 宝箱出现
- 随机时间生成:
随机时间 函数生成一个格式为HH:MM:SS 的随机时间字符串。
- 模拟日志时间戳:
模拟日志 函数使用随机时间 生成时间戳,模拟日志记录的时间信息。
- 生成随机闹钟时间:
- 测试数据生成器:
- 创建一个包含5条随机测试数据的数组,每条数据有随机生成的
id 、time 和status 。
- 随机延时任务模拟:
随机延时任务 函数模拟一个延时任务,任务的延时时间是随机的,任务执行后会调用回调函数(如果传入的话)。- 使用回调函数模拟执行任务序列,依次打印任务的开始和结束时间。
- 游戏随机事件模拟:
随机事件 函数模拟游戏中可能出现的随机事件,事件的时间和类型都是随机的。
|