
// 返回不重复的随机生成的8位数字
export function getRandomNumber() {
	const min = 10000000;
	const max = 99999999; // 生成一个8位数的随机数
	return Math.floor(Math.random() * (max - min + 1)) + min;
}


// 返回指定时间的前后半小时的毫秒级时间戳
export function getTimestampsBeforeAndAfter(dateString, format = 'yyyy-MM-dd HH:mm:ss') {
	// 创建一个Date对象  
	const date = new Date(dateString);

	// 半小时的毫秒数  
	const halfHourMilliseconds = 30 * 60 * 1000;

	// 获取指定时间前半小时的Date对象  
	const beforeHalfHour = new Date(date.getTime() - halfHourMilliseconds);

	// 获取指定时间后半小时的Date对象  
	const afterHalfHour = new Date(date.getTime() + halfHourMilliseconds);

	// 将Date对象转换为毫秒级时间戳  
	const beforeHalfHourTimestamp = beforeHalfHour.getTime();
	const afterHalfHourTimestamp = afterHalfHour.getTime();
	// // 将Date对象转换为秒级时间戳  
	// const beforeHalfHourTimestamp = Math.round(beforeHalfHour.getTime() / 1000);  
	// const afterHalfHourTimestamp = Math.round(afterHalfHour.getTime() / 1000);  

	// 返回时间戳数组  
	return [beforeHalfHourTimestamp, afterHalfHourTimestamp];
}

// 指定时间范围内按指定间隔的时间数组
export function getTimeArrayByInterval(startTimeString, endTimeString, intervalInMinutes = 1, format = 'HH:mm') {  
  // 创建开始和结束时间的Date对象  
  const startTime = new Date(startTimeString);  
  const endTime = new Date(endTimeString);  
  
  // 用于存储格式化时间的数组  
  const timeArray = [];  
  
  // 设置循环的当前时间  
  let currentTime = new Date(startTime.getTime());  
  
  // 确保结束时间大于开始时间  
  if (endTime <= startTime) {  
    throw new Error('结束时间必须大于开始时间');  
  }  
  
  // 确保间隔是正整数  
  if (Number.isInteger(intervalInMinutes) && intervalInMinutes > 0) {  
    // 遍历开始时间和结束时间之间的每个指定间隔  
    while (currentTime <= endTime) {  
      // 格式化当前时间  
      const formattedTime = formatTime(currentTime, format);  
      timeArray.push(formattedTime);  
  
      // 增加指定的间隔分钟数  
      currentTime.setMinutes(currentTime.getMinutes() + intervalInMinutes);  
  
      // 如果增加间隔后超过了结束时间，则退出循环  
      if (currentTime > endTime) {  
        break;  
      }  
    }  
  } else {  
    throw new Error('间隔时间必须是正整数');  
  }  
  
  // 返回格式化时间数组  
  return timeArray;  
}  
  
// 辅助函数，用于格式化Date对象为指定格式的时间字符串  
function formatTime(date, format = 'HH:mm') {  
  const pad = (n) => (n < 10 ? '0' + n : n);  
  const hours = pad(date.getHours());  
  const minutes = pad(date.getMinutes());  
  return format  
    .replace('HH', hours)  
    .replace('mm', minutes);  
}  
  
