Работа с датой и временем в PHP
перейти к содержанию задачника
Во всех задачах по умолчанию использовать Carbon или DateTime
- Дано количество секунд. Определить, сколько это дней, часов, минут.
- Создать carbon-объект для ‘22.10.2017’. Показать на экран в формате ‘d-m-Y’. Увеличить дату на 10 дней. Изменить время на 10 часов 30 мин 15 сек. Показать дату на экран в формате ‘d/m/Y H:i:s’.
- Дано две даты. Вывести ту, которая раньше, в формате ‘день-месяц (год)’
- Вывести, сколько дней в текущем месяце.
- Дан номер месяца текущего года. Вывести все его даты.
- Дана дата. Вывести, сколько дней до нее осталось (или сколько дней прошло).
- Вывести все прошедшие понедельники текущего года.
- Дана дата. Сгенерировать расписание с этой даты на 30 дней по такому принципу: сутки через трое. Если рабочий день приходится на воскресенье, то он переносится на понедельник. В итоге показать даты рабочих дней.
- Помогите репетитору по английскому. Урок длится 45 минут, перерыв между уроками 10 мин. Репетитор говорит время начала работы и время окончания работы (в рамках одного дня). Сгенерируйте расписание уроков. Например, 10:00 – начало, 18:00 – окончание. Расписание: 10:00 – 10:45, 10:55 – 11:40 и т.д. Если урок обрывается временем окончания работы, то не добавлять его в расписание.
- Дан режим работы интернет-магазина. ПН 9:00 – 21:00 ВТ 9:00 – 21:00 СР 9:00 – 21:00 ЧТ 9:00 – 21:00 ПТ 9:00 – 21:00 СБ 10:00 – 18:00 ВС 10:00 – 18:00. И даны дата и время. Определить, работает ли в это время магазин и сколько минут до конца рабочей смены.
- Дан массив периодов дат (временные затраты сотрудника на выполнение задач менеджера). Например, $dates = [[‘start’=>’02.10.2017 10:12:11’, ‘end’=>’02.10.2017 15:20:11’], [‘start’=>’03.10.2017 13:12:11’, ‘end’=>’03.10.2017 16:40:40’]]; То есть это многомерный массив, каждый элемент – массив с двумя датами в формате ‘d.m.Y H:i:s’. Найти, сколько всего часов потрачено сотрудником (в формате N час K мин).
- Дан массив дат бронирования номера в отеле. Элемент массива или одна дата, или период – две даты через дефис. Пример: $dates = [‘12.09.2017’, ‘14.09.2017-02.10.2017’]; Выяснить можно ли добавить в массив данную дату или период для нового бронирования. Например, для указанного выше примера период ‘01.10.2017-05.10.2017’ добавлять нельзя, так как первые два дня уже забронированы.
- Есть несколько человек. Про каждого известно, когда он ходит в кафе: в какой день недели и в какое время (например, пн – 12-00, чт – 14-20). Петя не хочет встретиться ни с кем из них. Он запланировал сходить в кафе в чт в 15-00. Определите, стоит ли идти Пете в запланированное время, если встреча случается при разнице не более 20 минут между посещениями (например, пн 12-00 и пн – 12-20 – эти два человека встретятся в кафе).
- Петя засомневался в верности своей девушки. У Пети есть список ее телефонных разговоров за последний месяц в виде [[‘11.02.2024 12:33:40’, ‘11.02.2024 12:56:01’], [‘12.02.2024 11:30:40’, ‘12.02.2024 11:34:20’], …]. То есть массив из периодов с началом и окончанием каждого разговора. Такой же список есть про каждого из друзей девушки (друзья могут разговаривать не только с девушкой). Погрешность определения начала разговора и окончания разговора составляет 10 секунд. Выведите список друзей девушки, с которыми она могла разговаривать ночами с 01-00 до 3-00. Выведите топ 3 друга, с которыми она могла разговаривать дольше всего.
- Петя смотрит каталог онлайн-курсов по программированию. Про каждый курс известны даты и время проведения его уроков. а) Может ли Петя выбрать три курса из каталога так, чтобы уроки не пересекались? б) На каждый урок курса Петя хочет выделить 3 часа времени на домашнее задание (кроме собственно самого урока). Домашнее задание он хочет делать сразу после урока. Сможет ли Петя выбрать три курса так, чтобы успевать делать домашнее задание и чтобы уроки не пересекались?