UNPKG

stdnum

Version:
61 lines 5.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validBirthdate = validBirthdate; exports.buildDate = buildDate; exports.isValidDate = isValidDate; exports.isValidDateCompactYYMMDD = isValidDateCompactYYMMDD; exports.isValidDateCompactDDMMYY = isValidDateCompactDDMMYY; exports.isValidDateCompactYYYYMMDD = isValidDateCompactYYYYMMDD; const strings_1 = require("./strings"); function validBirthdate(date) { if (date === null) { return false; } const now = new Date(); return date.getTime() <= now.getTime(); } function buildDate(yy, mm, dd) { const yyN = parseInt(yy, 10); const mmN = parseInt(mm, 10) - 1; const ddN = parseInt(dd, 10); if (Number.isNaN(yyN) || Number.isNaN(mmN) || Number.isNaN(ddN)) { return null; } let d; if (yyN < 20) { d = new Date(2000 + yyN, mmN, ddN); } else if (yyN < 100) { d = new Date(1900 + yyN, mmN, ddN); } else { d = new Date(yyN, mmN, ddN); } if (Number.isNaN(d.getFullYear())) { return null; } if (d.getDate() !== ddN || d.getMonth() !== mmN) { return null; } return d; } function isValidDate(yy, mm, dd, isBefore = false) { const d = buildDate(yy, mm, dd); if (d === null) { return false; } return isBefore ? validBirthdate(d) : true; } function isValidDateCompactYYMMDD(yymmdd, isBefore = false) { const [year, mon, day] = (0, strings_1.splitAt)(yymmdd, 2, 4); return isValidDate(year, mon, day, isBefore); } function isValidDateCompactDDMMYY(ddmmyy, isBefore = false) { const [day, mon, year] = (0, strings_1.splitAt)(ddmmyy, 2, 4); return isValidDate(year, mon, day, isBefore); } function isValidDateCompactYYYYMMDD(yyyymmdd, isBefore = false) { const [year, mon, day] = (0, strings_1.splitAt)(yyyymmdd, 4, 6); return isValidDate(year, mon, day, isBefore); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNWYWxpZERhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbC9pc1ZhbGlkRGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLHdDQU9DO0FBRUQsOEJBNEJDO0FBTUQsa0NBYUM7QUFHRCw0REFPQztBQUVELDREQU9DO0FBRUQsZ0VBT0M7QUF0RkQsdUNBQW9DO0FBRXBDLFNBQWdCLGNBQWMsQ0FBQyxJQUFpQjtJQUM5QyxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNsQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3ZCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUN6QyxDQUFDO0FBRUQsU0FBZ0IsU0FBUyxDQUFDLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVTtJQUMxRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFN0IsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2hFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksQ0FBQyxDQUFDO0lBQ04sSUFBSSxHQUFHLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDYixDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQztTQUFNLElBQUksR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO1NBQU0sQ0FBQztRQUNOLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFHRCxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQU1ELFNBQWdCLFdBQVcsQ0FDekIsRUFBVSxFQUNWLEVBQVUsRUFDVixFQUFVLEVBQ1YsUUFBUSxHQUFHLEtBQUs7SUFFaEIsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFaEMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDZixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDN0MsQ0FBQztBQUdELFNBQWdCLHdCQUF3QixDQUN0QyxNQUFjLEVBQ2QsUUFBUSxHQUFHLEtBQUs7SUFFaEIsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBQSxpQkFBTyxFQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFL0MsT0FBTyxXQUFXLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELFNBQWdCLHdCQUF3QixDQUN0QyxNQUFjLEVBQ2QsUUFBUSxHQUFHLEtBQUs7SUFFaEIsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFBQSxpQkFBTyxFQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFL0MsT0FBTyxXQUFXLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELFNBQWdCLDBCQUEwQixDQUN4QyxRQUFnQixFQUNoQixRQUFRLEdBQUcsS0FBSztJQUVoQixNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFBLGlCQUFPLEVBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVqRCxPQUFPLFdBQVcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUMvQyxDQUFDIn0=