diff --git a/src/task_1/index.js b/src/task_1/index.js index 2abfd00..3b3b332 100644 --- a/src/task_1/index.js +++ b/src/task_1/index.js @@ -15,6 +15,13 @@ @param {number} hours - Час @param {number} minutes - Минуты */ -function Time(hours, minutes) { }; +function Time(hours, minutes) { + if(hours > 23 || hours < 0 || minutes > 60 || minutes < 0) throw new Error('Incorrect time'); + this.hours = hours; + this.minutes = minutes; + this.isEarlier = time => time.timeInMinutes() > this.timeInMinutes(); + this.isLater = time => time.timeInMinutes() < this.timeInMinutes(); + this.timeInMinutes = () => this.minutes + this.hours * 60; +} module.exports.Time = Time; diff --git a/src/task_2/index.js b/src/task_2/index.js index f20d7ee..4c2bdfa 100644 --- a/src/task_2/index.js +++ b/src/task_2/index.js @@ -17,6 +17,15 @@ const { Time } = require('../task_1/index'); @param {Time} startTime - Время начала встречи @param {Time} endTime - Время конца встречи */ -function Meeting(meetingDate, startTime, endTime) { }; +function Meeting(meetingDate, startTime, endTime) { + if(!startTime || !endTime || startTime.timeInMinutes() > endTime.timeInMinutes() || + startTime.timeInMinutes() < 480 || endTime.timeInMinutes() > 1140) throw new Error('Incorrect meeting') + this.meetingDate = meetingDate; + this.startTime = startTime; + this.endTime = endTime; + this.isMeetingInTimeRange = (start, end) => + this.endTime.timeInMinutes() >= start.timeInMinutes() && this.startTime.timeInMinutes() <= end.timeInMinutes() || + this.startTime.timeInMinutes() <= end.timeInMinutes() && this.endTime.timeInMinutes() >= start.timeInMinutes(); +} module.exports.Meeting = Meeting; diff --git a/src/task_3/index.js b/src/task_3/index.js index 4212ffa..021423f 100644 --- a/src/task_3/index.js +++ b/src/task_3/index.js @@ -11,6 +11,13 @@ @param {Date} vacationEndDate - Время конца отпуска */ -function Vacation(vacationStartDate, vacationEndDate) { }; +function Vacation(vacationStartDate, vacationEndDate) { + if(!vacationStartDate || !vacationEndDate || + Number(vacationStartDate) >= Number(vacationEndDate)) throw new Error('Incorrect vacation') + this.vacationStartDate = vacationStartDate; + this.vacationEndDate = vacationEndDate; + this.isDateInVacation = date => + Number(date) >= Number(vacationStartDate) && Number(date) <= Number(vacationEndDate); +} module.exports.Vacation = Vacation; diff --git a/src/task_4/index.js b/src/task_4/index.js index cae825a..0d4d666 100644 --- a/src/task_4/index.js +++ b/src/task_4/index.js @@ -12,6 +12,9 @@ const { Vacation } = require('../task_3/index'); @param {Array} vacations - Массив отпусков */ -function Organaizer(meetings, vacations) { }; +function Organaizer(meetings, vacations) { + this.meetings = meetings; + this.vacations = vacations; + }; module.exports.Organaizer = Organaizer;