/**
 * 数字转中文（支持 0-99 整数）
 * @param num 需要转化的数字
 */
export const onNumToChinese = (num:number) => {
	// 1. 基础校验：只处理 0-99 的整数
	if (!Number.isInteger(num) || num < 0 || num > 99) return '100';
	// 2. 定义基础字符
	const singleChars = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
	const tenChar = '十';
	// 3. 核心转换逻辑
	if (num < 10) {
		// 0-9 直接返回对应字符
		return singleChars[num];
	} else if (num === 10) {
		// 10 特殊处理
		return tenChar;
	} else if (num < 20) {
		// 11-19：十 + 个位（如十一、十九）
		return tenChar + singleChars[num - 10];
	} else {
		// 20-99：十位 + 十 + 个位（个位为0则省略，如二十、二十九）
		const ten = Math.floor(num / 10); // 十位数字
		const unit = num % 10; // 个位数字
		return singleChars[ten] + tenChar + (unit === 0 ? '' : singleChars[unit]);
	}
}

/**
 * 获取 n 天前的日期，格式：YYYY-MM-DD
 * @param num 往前推的天数
 */
export const getDateBefore = (num: number) => {
  const now = new Date();
  const targetTime = now.getTime() - num * 24 * 60 * 60 * 1000;
  const targetDate = new Date(targetTime);

  const year = targetDate.getFullYear();
  const month = String(targetDate.getMonth() + 1).padStart(2, '0');
  const day = String(targetDate.getDate()).padStart(2, '0');

  return `${year}-${month}-${day}`;
}

/**
 * 获取最近年份列表
 * @param num 需要几年前的列表
 */
export const getNearYearList = (num=6) => {
	const currentYear = new Date().getFullYear();
	const yearOptions = [];
	for (let i = 0; i < num; i++) {
		const year = currentYear - i;
		yearOptions.push({ label: year.toString()+'年', value: year.toString() });
	}
	return yearOptions;
};

// 十六进制颜色转 rgba 的工具函数
export const hexToRgba = (hex:any, alpha:number) => {
  const r = parseInt(hex.slice(1, 3), 16);
  const g = parseInt(hex.slice(3, 5), 16);
  const b = parseInt(hex.slice(5, 7), 16);
  return `rgba(${r}, ${g}, ${b}, ${alpha})`;
}