import dayjs, { Dayjs } from 'dayjs';
import 'dayjs/locale/zh-cn';

dayjs.locale('zh-cn');

/**
 * 返回基于当前时间的中文问候语：早上好 / 下午好 / 晚上好
 * - 早上：05:00 - 11:59
 * - 下午：12:00 - 17:59
 * - 晚上：18:00 - 04:59
 */
export function getChineseGreeting(now: Date = new Date()): string {
  const hour = now.getHours();

  if (hour >= 5 && hour < 12) {
    return '早上好';
  }
  if (hour >= 12 && hour < 18) {
    return '下午好';
  }
  return '晚上好';
}

/** 获取中文月份标题，例如：2025年8月 */
export function getMonthTitleZh(date: Dayjs = dayjs()): string {
  return date.format('YYYY年M月');
}

export type MonthDay = {
  /** 中文星期：日/一/二/三/四/五/六 */
  weekdayZh: string;
  /** 月内第几日（1-31） */
  dayOfMonth: number;
  /** 对应的 dayjs 对象 */
  date: Dayjs;
};

/** 获取某月的所有日期（中文星期+日号） */
export function getMonthDaysZh(date: Dayjs = dayjs()): MonthDay[] {
  const year = date.year();
  const monthIndex = date.month();
  const daysInMonth = date.daysInMonth();
  const zhWeek = ['日', '一', '二', '三', '四', '五', '六'];
  return Array.from({ length: daysInMonth }, (_, i) => {
    const d = dayjs(new Date(year, monthIndex, i + 1));
    return {
      weekdayZh: zhWeek[d.day()],
      dayOfMonth: i + 1,
      date: d,
    };
  });
}

/** 获取“今天”在当月的索引（0 基） */
export function getTodayIndexInMonth(date: Dayjs = dayjs()): number {
  return date.date() - 1;
}


