Muranx
@Muranx
кто понял this тот в цирке не смеётся

Как реализовать логику расчета смен в приложении для графика сменности?

Здравствуйте!

функционал приложения простой, есть обычный календарь (на весь год), работяга тыкает по любому числу, появляется выпадающий список с его графиком (нужный график выбирается в менюшке) . Работяга выбирает смену (или выходной) который будет в то число, на которое он кликнул ну и приложение рассчитывает его график на весь год. Примерный объект, содержащий график будет выглядеть так ...

let shedule = [

	{
		name : "1 смена",
		class_html : "shed_1",
		time_from : "08:00",
		time_to : "16:00"
	},
	{
		name : "1 смена",
		class_html : "shed_1",
		time_from : "08:00",
		time_to : "16:00"
	},
	{
		name : "2 смена",
		class_html : "shed_2",
		time_from : "16:00",
		time_to : "24:00"
	},
	{
		name : "2 смена",
		class_html : "shed_2",
		time_from : "16:00",
		time_to : "24:00"
	},
	{
		name : "выходной",
		class_html : "shed_v",
		time_from : "00:00",
		time_to : "24:00"
	},
	{
		name : "выходной",
		class_html : "shed_v",
		time_from : "00:00",
		time_to : "24:00"
	}
];

Главный вопрос, как более логично осуществить расчета графика на весь год? К примеру работяга тыкнул на 7 июля, и выбрал допустим первый из двух его выходных дней (ну для примера), соответственно 6 июля в календаре должна быть вторая / вторая смена, 5 июля первая / вторая смена ит.д. Я реализовал это приложение по пути наименьшего сопротивления, запустив просто два цикла, один считает смены назад до 1 января текущего года, а второй соответственно вперёд. Может кто предложит более разумное решение, может быть в один цикл. Офк действия после самого расчёта минимум предполагают отображение смен на графике, ну или сначало добавление этих смен в объект ГОДА, а уже потом из него отрисовку на сам график, Это не принципиально в данном случае.
  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Остаток от деления номера дня в году на число дней в одном цикле - это смещение графика от начала года.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы