UEA-Prodem
This commit is contained in:
+39
@@ -0,0 +1,39 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.checkGregorianRange = exports.checkHijriRange = void 0;
|
||||
const ummalqura_1 = require("./ummalqura");
|
||||
const isoFormat_1 = require("./isoFormat");
|
||||
const dateHelpersHijri_1 = require("./dateHelpersHijri");
|
||||
/**
|
||||
* Check date values if within valid range.
|
||||
*/
|
||||
function checkHijriRange(date) {
|
||||
// check year
|
||||
const [[minYear], [maxYear]] = ummalqura_1.HIJRI_RANGE;
|
||||
if (date.year < minYear || maxYear < date.year) {
|
||||
throw Error('date out of range');
|
||||
}
|
||||
// check month
|
||||
const maxMonths = 12;
|
||||
if (date.month < 1 || maxMonths < date.month) {
|
||||
throw Error(`month must be in 1..${maxMonths}`);
|
||||
}
|
||||
// check day
|
||||
const monthLen = (0, dateHelpersHijri_1.hijriDaysInMonth)(date.year, date.month);
|
||||
if (date.day < 1 || monthLen < date.day) {
|
||||
throw Error(`day must be in 1..${monthLen}`);
|
||||
}
|
||||
}
|
||||
exports.checkHijriRange = checkHijriRange;
|
||||
/**
|
||||
* Check if Gregorian date is within valid range.
|
||||
*/
|
||||
function checkGregorianRange(date) {
|
||||
const [minDate, maxDate] = ummalqura_1.GREGORIAN_RANGE;
|
||||
const isoCurrentDate = (0, isoFormat_1.isoFormat)(date.year, date.month, date.day);
|
||||
if ((0, isoFormat_1.isoFormat)(...minDate) > isoCurrentDate ||
|
||||
(0, isoFormat_1.isoFormat)(...maxDate) < isoCurrentDate) {
|
||||
throw Error('date out of range');
|
||||
}
|
||||
}
|
||||
exports.checkGregorianRange = checkGregorianRange;
|
||||
Reference in New Issue
Block a user