UNPKG

persian-date

Version:

Javascript date library for parsing, validating, manipulating, and formatting persian dates System.

110 lines (101 loc) 2.79 kB
let durationUnit = require('./constants').durationUnit; class Helpers { /** * @description return converted string to persian digit * @param digit * @returns {string|*} */ toPersianDigit (digit, latinDigit = false) { return digit.toString().replace(/\d+/g, function (digit) { let enDigitArr = [], peDigitArr = [], i, j; for (i = 0; i < digit.length; i += 1) { enDigitArr.push(digit.charCodeAt(i)); } for (j = 0; j < enDigitArr.length; j += 1) { peDigitArr.push(String.fromCharCode(enDigitArr[j] + ((!!latinDigit && latinDigit === true) ? 1584 : 1728))); } return peDigitArr.join(''); }); } /** * @param number * @param targetLength * @returns {string} */ leftZeroFill (number, targetLength) { let output = number + ''; while (output.length < targetLength) { output = '0' + output; } return output; } /** * @description normalize duration params and return valid param * @return {{unit: *, value: *}} */ normalizeDuration () { let unit, value; if (typeof arguments[0] === 'string') { unit = arguments[0]; value = arguments[1]; } else { value = arguments[0]; unit = arguments[1]; } if (durationUnit.year.indexOf(unit) > -1) { unit = 'year'; } else if (durationUnit.month.indexOf(unit) > -1) { unit = 'month'; } else if (durationUnit.week.indexOf(unit) > -1) { unit = 'week'; } else if (durationUnit.day.indexOf(unit) > -1) { unit = 'day'; } else if (durationUnit.hour.indexOf(unit) > -1) { unit = 'hour'; } else if (durationUnit.minute.indexOf(unit) > -1) { unit = 'minute'; } else if (durationUnit.second.indexOf(unit) > -1) { unit = 'second'; } else if (durationUnit.millisecond.indexOf(unit) > -1) { unit = 'millisecond'; } return { unit: unit, value: value }; } /** * * @param number * @returns {number} */ absRound (number) { if (number < 0) { return Math.ceil(number); } else { return Math.floor(number); } } /** * * @param number * @return {number} */ absFloor (number) { if (number < 0) { // -0 -> 0 return Math.ceil(number) || 0; } else { return Math.floor(number); } } } module.exports = Helpers;