Как написать код в php чтобы он определял цвет светофора в конкретное время используя инпуты?
Работа светофора запрограмирована таким образом, что с начала каждого часа на протяжении 3 мин горит зеленый сигнал следующие 20 сек желтый и 2 мин горит красный и так по кругу, + есть информация что светофор запустили 22.01.1970 в 00:00, нужно написать код так , чтобы при вводе времени (год/месяц/час/минута/секунда) определяло какого цвета сейчас светофор. Столкнулся с этим заданием, и видел много способов решения, но они все были, просто по методу текущего времени, и с 2 цветами, хочу понять как решить эту задачку?
?
Получается, что весь процесс смены 3 цветов занимает (180 + 20 + 120 = 420 секунд). В часе 3600 секунд, что не делится нацело на 420. То есть если последовательность непрерывна, то следующий час не начнется с 3 минут горения зеленого.
а как решать без текущего времени, если нужно узнать какой цвет горит на данный момент - загадка...
еще в условии сказано, что в начале каждого часа сначала горит зелёный 3 мин и тд, тогда важно ли нам, что его запустили 22 янв 1970 года. - кажется что нет (предположу что про начала часа - ошибка)
а решение - найди количество секунд прошедших с даты запуска до искомого момента времени, найди остаток от деления этого количество на количество секунд равным 3мин+20сек+2мин (надеюсь справишься) и проверь условиями этот остаток от деления. если меньше или равно 180сек - значит зелёный и тд
scottparker, условия не мои(к моему же сожалению) похожая задача, с 2 цветами, для меня была вполне понятной, просто когда я читаю эту задачу, то я немного не могу понять от чего отталкиваться , спасибо за все ответы буду пробовать )
NoFlame, странно что для двух цветов понятно, а для трех нет. если разница только в том, сколько нужно сложить промежутков времени что бы найти период светофора (там 2 значения, здесь - 3) и в количестве условий на которое нужно проверить остаток от деления (там 1, здесь 2) и все...
Любую задачу, если она сразу не решается в голове, надо решать на бумажке с ручкой
причем без алгоритмов, тупо перебором.
рисуем шкалу времени, на ней сигналы светофора по очереди, и дальше берем даты внутри этой шкалы и тупо руками смотрим, какой сигнал.
И потому же пытаемся такой поиск автоматизировать. Исходя из разницы в секундах между заданной датой и началом работы
Причем шкала пригодится для того, чтобы проверять правильность своего алгоритма.