UNPKG

@genexus/web-standard-functions

Version:

GeneXus JavaScript standard functions library for web generators

150 lines 4.57 kB
"use strict"; /** * Returns a Date from string value format espected format dd[/]mm[/]yyyy * @param {string} dateFrom * @return GxDatetime */ Object.defineProperty(exports, "__esModule", { value: true }); exports.fromString = void 0; const core_1 = require("../date/core"); const gxdatetime_1 = require("../types/gxdatetime"); const newInstance_1 = require("./newInstance"); const fromString = (dateFrom, dateFormat, fy20c) => { if (!dateFormat) { dateFormat = "MDY"; } if (!fy20c) { fy20c = 40; } let timeFormat; if (dateFrom.toUpperCase().indexOf("AM") !== -1 || dateFrom.toUpperCase().indexOf("PM") !== -1) { timeFormat = 12; } else { timeFormat = 24; } // Date Format dateFormat = “MDY” dateFormat = “DMY” dateFormat = “YMD” o Y4 let y = dateFormat.indexOf("Y"); let m = dateFormat.indexOf("M"); let d = dateFormat.indexOf("D"); if (dateFormat.indexOf("Y4") === 0) { m = m - 1; d = d - 1; } let timeParts; let dateParts; let dateBool; let timeBool; if (dateFrom.split(" ").length === 1) { if (dateFrom.indexOf("/") !== -1) { dateBool = true; timeBool = false; } if (dateFrom.indexOf(":") !== -1) { timeBool = true; dateBool = false; } } else if (dateFrom.split(" ").length === 2) { if (timeFormat === 12) { dateBool = false; timeBool = true; } if (timeFormat === 24) { dateBool = true; timeBool = true; } } else if (dateFrom.split(" ").length === 3) { dateBool = true; timeBool = true; } if (dateFrom.indexOf("/") !== -1) { dateParts = dateFrom.split(" ")[0].split("/"); timeParts = dateFrom.match(/ ([0-9]?[0-9]):([0-9]?[0-9])\:?([0-9][0-9])?\.?([0-9]?[0-9]?[0-9])?/); } else { timeParts = dateFrom.match(/([0-9]?[0-9]):([0-9]?[0-9])\:?([0-9][0-9])?\.?([0-9]?[0-9]?[0-9])?/); } let hour; let minutes; let seconds; let milliseconds; if (timeParts && timeParts.length !== 1 && timeParts[1] && Number(timeParts[1]) !== 24) { hour = 0; minutes = 0; if (timeParts[1] && timeParts[2]) { hour = Number(timeParts[1]); minutes = Number(timeParts[2]); } seconds = 0; if (timeParts[3]) { seconds = Number(timeParts[3]); } milliseconds = 0; if (timeParts[4]) { milliseconds = Number(timeParts[4]); } if (timeFormat === 12) { if (Number(hour) <= 12) { if (dateFrom.toUpperCase().indexOf("PM") !== -1) { if (hour < 12) { hour = hour + 12; } else { hour = hour; } } else if (dateFrom.toUpperCase().indexOf("AM") !== -1) { if (hour < 12) { hour = hour; } else { hour = 0; } } } } } let year; let month; let day; if (dateParts && dateParts.length !== 1) { year = Number(dateParts[y]); month = Number(dateParts[m]); day = Number(dateParts[d]); } if (timeBool === true && dateBool === false) { if (!timeParts) { return new gxdatetime_1.GxDatetime(core_1.EMPTY_DATE_VALUE); } else { return (0, newInstance_1.newInstance)(0, 0, 0, hour, minutes, seconds, milliseconds, fy20c); } } else if (dateBool === true && timeBool === false) { if (!dateParts) { return new gxdatetime_1.GxDatetime(core_1.EMPTY_DATE_VALUE); } else { return (0, newInstance_1.newInstance)(year, month, day, 0, 0, 0, 0, fy20c); } } else if (dateBool === true && timeBool === true) { if (!dateParts || !timeParts) { return new gxdatetime_1.GxDatetime(core_1.EMPTY_DATE_VALUE); } else { return (0, newInstance_1.newInstance)(year, month, day, hour, minutes, seconds, milliseconds, fy20c); } } else { return new gxdatetime_1.GxDatetime(core_1.EMPTY_DATE_VALUE); } }; exports.fromString = fromString; //# sourceMappingURL=CtoT.js.map