/**
 * 数字转中文
 * @param {number} num 数字
 * @returns {string}
 */
export function digitToChinese(num) {
  const digitToChineseMap = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九']; // 创建一个对应数组，然后用下标去取
  let str = num
    .toString()
    .split('')
    .map((digit) => digitToChineseMap[digit])
    .join('');
  return str;
}

// 对小于 10 的补零
export function zeroFill(val) {
  return val < 10 ? `0${val}` : val;
}

/**
 * 将秒转为时:分:秒格式
 * @param {Number|String} val 秒
 * @param {'normal'|'chinese'} type 格式类型
 * @returns {string} 'normal' hh:MM:ss 小于1小时返回 MM:ss 'chinese' h时m分s秒
 */
export function secondFormatConversion(val = 0, type = 'normal') {
  const seconds = parseInt(val); // 输入的秒数
  const hours = Math.floor(seconds / 3600); // 小时部分
  const minutes = Math.floor((seconds % 3600) / 60); // 分钟部分
  const remainingSeconds = seconds % 60; // 剩余的秒数

  // 使用零填充函数来格式化小时、分钟和秒
  const formattedHours = zeroFill(hours);
  const formattedMinutes = zeroFill(minutes);
  const formattedSeconds = zeroFill(remainingSeconds);

  // 根据时间范围返回不同的格式
  if (hours > 0) {
    if (type === 'chinese') {
      return `${hours}时${minutes}分${remainingSeconds}秒`;
    }
    return `${formattedHours}:${formattedMinutes}:${formattedSeconds}`;
  }
  if (type === 'chinese') {
    return `${minutes}分${remainingSeconds}秒`;
  }
  return `${formattedMinutes}:${formattedSeconds}`;
}

/**
 * 将时间转为 时:分:秒 格式
 * @param {Date} date 时间戳
 * @returns {String} hh:MM:ss
 */
export function timeFormatConversion(date) {
  return `${zeroFill(date.getHours())}:${zeroFill(date.getMinutes())}:${zeroFill(date.getSeconds())}`;
}
