jalali-ts
Version:
Parse and interact with jalali date
70 lines (69 loc) • 2.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.throwError = exports.zeroPad = exports.normalizeMilliseconds = exports.normalizeHours = exports.normalizeNumbers = exports.monthLength = exports.toGregorian = exports.toJalali = void 0;
var Utils_1 = require("./Utils");
var toJalali = function (date) {
var jalali = Utils_1.Utils.toJalali(date);
jalali.month -= 1;
return jalali;
};
exports.toJalali = toJalali;
var toGregorian = function (year, month, date) {
var gregorian = Utils_1.Utils.toGregorian(year, month + 1, date);
gregorian.month -= 1;
return gregorian;
};
exports.toGregorian = toGregorian;
var monthLength = function (year, month) {
month = Utils_1.Utils.mod(month, 12);
year += Utils_1.Utils.div(month, 12);
if (month < 0) {
month += 12;
year -= 1;
}
return Utils_1.Utils.monthLength(year, month + 1);
};
exports.monthLength = monthLength;
var normalizeNumbers = function (date) {
var persianNumbers = new Map();
persianNumbers.set('۰', '0');
persianNumbers.set('۱', '1');
persianNumbers.set('۲', '2');
persianNumbers.set('۳', '3');
persianNumbers.set('۴', '4');
persianNumbers.set('۵', '5');
persianNumbers.set('۶', '6');
persianNumbers.set('۷', '7');
persianNumbers.set('۸', '8');
persianNumbers.set('۹', '9');
return String(date).split('').map(function (char) { var _a; return (_a = persianNumbers.get(char)) !== null && _a !== void 0 ? _a : char; }).join('');
};
exports.normalizeNumbers = normalizeNumbers;
var normalizeHours = function (date, hours) {
var meridian = null;
if (String(date).toLowerCase().includes('am'))
meridian = 'am';
if (String(date).toLowerCase().includes('pm'))
meridian = 'pm';
if (meridian === 'am' && hours === 12)
return 0;
if (meridian === 'pm' && (hours >= 1 && hours <= 11))
return hours + 12;
return (meridian !== null && hours > 12) ? -1 : hours;
};
exports.normalizeHours = normalizeHours;
var normalizeMilliseconds = function (ms) {
if (ms.length === 1)
return Number(ms) * 100;
else if (ms.length === 2)
return Number(ms) * 10;
return ms.length > 3 ? -1 : Number(ms);
};
exports.normalizeMilliseconds = normalizeMilliseconds;
var zeroPad = function (value, maxLength) {
if (maxLength === void 0) { maxLength = 2; }
return String(value).padStart(maxLength, '0');
};
exports.zeroPad = zeroPad;
var throwError = function (value) { throw new Error("Invalid: ".concat(value)); };
exports.throwError = throwError;