devextreme
Version:
JavaScript/TypeScript Component Suite for Responsive Web Development
45 lines (44 loc) • 1.53 kB
JavaScript
/**
* DevExtreme (esm/__internal/scheduler/view_model/common/split_interval_by_days.js)
* Version: 25.2.5
* Build date: Fri Feb 20 2026
*
* Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import {
dateUtils
} from "../../../core/utils/m_date";
export const splitIntervalByDay = _ref => {
let {
startDayHour: startDayHour,
endDayHour: endDayHour,
min: min,
max: max,
skippedDays: skippedDays
} = _ref;
if (endDayHour < startDayHour) {
return []
}
const startTime = dateUtils.dateTimeFromDecimal(startDayHour);
const endTime = dateUtils.dateTimeFromDecimal(endDayHour);
const normalizedMin = new Date(min);
normalizedMin.setUTCHours(startTime.hours, startTime.minutes, 0, 0);
const normalizedMax = new Date(max - 1);
normalizedMax.setUTCHours(endTime.hours, endTime.minutes, 0, 0);
const time = normalizedMin;
const maxTime = normalizedMax;
const result = [];
while (time < maxTime) {
if (!skippedDays.includes(time.getUTCDay())) {
const intervalMax = new Date(time);
intervalMax.setUTCHours(endTime.hours, endTime.minutes, 0, 0);
result.push({
min: time.getTime(),
max: intervalMax.getTime()
})
}
time.setUTCDate(time.getUTCDate() + 1)
}
return result
};