We deliberately avoid Date to side-step JavaScript's timezone semantics:
a CURP "born on YYMMDD" is a calendar date, not an instant. Consumers who
need a Date can build one explicitly with new Date(Date.UTC(year, month-1, day)).
year is always 4-digit (no two-digit shorthand).
month is 1-based (1..12), matching how humans write dates.
day is 1-based (1..31). Calendar plausibility is checked before returning.
A calendar date as encoded in the document.
We deliberately avoid
Dateto side-step JavaScript's timezone semantics: a CURP "born on YYMMDD" is a calendar date, not an instant. Consumers who need aDatecan build one explicitly withnew Date(Date.UTC(year, month-1, day)).yearis always 4-digit (no two-digit shorthand).monthis 1-based (1..12), matching how humans write dates.dayis 1-based (1..31). Calendar plausibility is checked before returning.