1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- "use strict";
- /**
- * True during (or between) the specified time(s).
- *
- * Even though the examples don't show it, this parameter may be present in
- * each of the different parameter profiles, always as the last parameter.
- *
- *
- * Examples:
- *
- * ``` js
- * timerange(12)
- * true from noon to 1pm.
- *
- * timerange(12, 13)
- * same as above.
- *
- * timerange(12, "GMT")
- * true from noon to 1pm, in GMT timezone.
- *
- * timerange(9, 17)
- * true from 9am to 5pm.
- *
- * timerange(8, 30, 17, 00)
- * true from 8:30am to 5:00pm.
- *
- * timerange(0, 0, 0, 0, 0, 30)
- * true between midnight and 30 seconds past midnight.
- * ```
- *
- * timeRange(hour)
- * timeRange(hour1, hour2)
- * timeRange(hour1, min1, hour2, min2)
- * timeRange(hour1, min1, sec1, hour2, min2, sec2)
- * timeRange(hour1, min1, sec1, hour2, min2, sec2, gmt)
- *
- * @param {String} hour is the hour from 0 to 23. (0 is midnight, 23 is 11 pm.)
- * @param {String} min minutes from 0 to 59.
- * @param {String} sec seconds from 0 to 59.
- * @param {String} gmt either the string "GMT" for GMT timezone, or not specified, for local timezone.
- * @return {Boolean}
- */
- Object.defineProperty(exports, "__esModule", { value: true });
- function timeRange() {
- // eslint-disable-next-line prefer-rest-params
- const args = Array.prototype.slice.call(arguments);
- const lastArg = args.pop();
- const useGMTzone = lastArg === 'GMT';
- const currentDate = new Date();
- if (!useGMTzone) {
- args.push(lastArg);
- }
- let result = false;
- const noOfArgs = args.length;
- const numericArgs = args.map((n) => parseInt(n, 10));
- // timeRange(hour)
- if (noOfArgs === 1) {
- result = getCurrentHour(useGMTzone, currentDate) === numericArgs[0];
- // timeRange(hour1, hour2)
- }
- else if (noOfArgs === 2) {
- const currentHour = getCurrentHour(useGMTzone, currentDate);
- result = numericArgs[0] <= currentHour && currentHour < numericArgs[1];
- // timeRange(hour1, min1, hour2, min2)
- }
- else if (noOfArgs === 4) {
- result = valueInRange(secondsElapsedToday(numericArgs[0], numericArgs[1], 0), secondsElapsedToday(getCurrentHour(useGMTzone, currentDate), getCurrentMinute(useGMTzone, currentDate), 0), secondsElapsedToday(numericArgs[2], numericArgs[3], 59));
- // timeRange(hour1, min1, sec1, hour2, min2, sec2)
- }
- else if (noOfArgs === 6) {
- result = valueInRange(secondsElapsedToday(numericArgs[0], numericArgs[1], numericArgs[2]), secondsElapsedToday(getCurrentHour(useGMTzone, currentDate), getCurrentMinute(useGMTzone, currentDate), getCurrentSecond(useGMTzone, currentDate)), secondsElapsedToday(numericArgs[3], numericArgs[4], numericArgs[5]));
- }
- return result;
- }
- exports.default = timeRange;
- function secondsElapsedToday(hh, mm, ss) {
- return hh * 3600 + mm * 60 + ss;
- }
- function getCurrentHour(gmt, currentDate) {
- return gmt ? currentDate.getUTCHours() : currentDate.getHours();
- }
- function getCurrentMinute(gmt, currentDate) {
- return gmt ? currentDate.getUTCMinutes() : currentDate.getMinutes();
- }
- function getCurrentSecond(gmt, currentDate) {
- return gmt ? currentDate.getUTCSeconds() : currentDate.getSeconds();
- }
- // start <= value <= finish
- function valueInRange(start, value, finish) {
- return start <= value && value <= finish;
- }
- //# sourceMappingURL=timeRange.js.map
|