// Helpers comunes (nombres preservados) export const z2 = n => String(n).padStart(2,'0'); export const pad2 = z2; export const fmtHM = mins => { const h = Math.floor(mins/60); const m = Math.round(mins%60); return `${z2(h)}:${z2(m)}`; }; export const ymd = s => String(s||'').slice(0,10); // '2025-08-29T..' -> '2025-08-29' // Normaliza fecha "YY/MM/DD" o "YYYY/MM/DD" a "YYYY-MM-DD" export function normDateStr(s) { const m = String(s || '').trim().match(/^(\d{2,4})[\/\-](\d{1,2})[\/\-](\d{1,2})$/); if (!m) return null; let [_, y, mo, d] = m; let yy = parseInt(y, 10); if (y.length === 2) yy = 2000 + yy; // 20YY const mm = parseInt(mo, 10), dd = parseInt(d, 10); if (!(mm >= 1 && mm <= 12 && dd >= 1 && dd <= 31)) return null; return `${yy}-${String(mm).padStart(2,'0')}-${String(dd).padStart(2,'0')}`; } // Normaliza documento quitando ceros a la izquierda export const cleanDoc = s => { const v = String(s||'').trim().replace(/^0+/, ''); return v === '' ? '0' : v; }; // Compat alias (mantener nombre) export const normDoc = s => { const v = String(s||'').replace(/\D/g,'').replace(/^0+/,''); return v || '0'; }; export function toUTCms(isoDate, time) { const [Y,M,D] = isoDate.split('-').map(n=>parseInt(n,10)); const [h,m,s] = time.split(':').map(n=>parseInt(n,10)); return Date.UTC(Y, (M||1)-1, D||1, h||0, m||0, s||0); // UTC fijo } export function fmtHMSUTC(ms){ const d = new Date(ms); const z = n => String(n).padStart(2,'0'); return `${z(d.getUTCHours())}:${z(d.getUTCMinutes())}:${z(d.getUTCSeconds())}`; }