/**
 * Parse YYYY-MM-DD como fecha local (evita el desfase UTC de `new Date(iso)`).
 */
export function parseLocalYMD(iso: string): Date | null {
  if (!iso || iso.length < 10) return null;
  const [ys, ms, ds] = iso.slice(0, 10).split('-');
  const y = Number(ys);
  const m = Number(ms);
  const d = Number(ds);
  if (!y || !m || !d) return null;
  return new Date(y, m - 1, d);
}

/**
 * Rango de trimestre legible, p. ej. "9 de abril de 2026 al 8 de julio de 2026".
 */
export function formatTrimestreRangoBonito(desde: string, hasta: string): string {
  const a = parseLocalYMD(desde);
  const b = parseLocalYMD(hasta);
  if (!a || !b) return '';
  const fmt = new Intl.DateTimeFormat('es-HN', {
    day: 'numeric',
    month: 'long',
    year: 'numeric'
  });
  return `Del ${fmt.format(a)} al ${fmt.format(b)}`;
}

/** Formato corto con ceros: 09/04/2026 */
export function formatFechaDMY(iso: string): string {
  if (!iso || iso.length < 10) return '';
  const part = iso.slice(0, 10).split('-');
  if (part.length !== 3) return iso;
  const [y, m, d] = part;
  return `${d.padStart(2, '0')}/${m.padStart(2, '0')}/${y}`;
}
