diff --git a/js/functions.js b/js/functions.js index 5d9ea21..36d7cbb 100644 --- a/js/functions.js +++ b/js/functions.js @@ -29,3 +29,29 @@ function extractNumbers (text) { return allNumbers; } extractNumbers('gssee45 2983f2'); + +// Функция проверяет, укладывается ли встреча в рамки рабочего дня +function isMeetingWithinWorkHours(workStart, workEnd, meetingStart, meetingDuration) { + // Вспомогательная функция: преобразует строку времени в количество минут с начала суток + function parseTime(timeStr) { + // Разделяет строку времени на часы и минуты и преобразует их в числовые значения + const [hours, minutes] = timeStr.split(':').map(Number); + return hours * 60 + minutes; + } + + const workStartMinutes = parseTime(workStart); // Начало рабочего дня в минутах + const workEndMinutes = parseTime(workEnd); // Конец рабочего дня в минутах + const meetingStartMinutes = parseTime(meetingStart); // Начало встречи в минутах + const meetingEndMinutes = meetingStartMinutes + meetingDuration; // Конец встречи в минутах + + // Проверяет, начинается ли встреча после начала рабочего дня и заканчивается ли до его завершения + return meetingStartMinutes >= workStartMinutes && meetingEndMinutes <= workEndMinutes; +} + +// Примеры использования +isMeetingWithinWorkHours('08:00', '17:30', '14:00', 90); +isMeetingWithinWorkHours('8:0', '10:0', '8:0', 120); +isMeetingWithinWorkHours('08:00', '14:30', '14:00', 90); +isMeetingWithinWorkHours('14:00', '17:30', '08:0', 90); +isMeetingWithinWorkHours('8:00', '17:30', '08:00', 900); +