Задачи на дату/время в Kotlin. Часть 7
Дан список периодов работы сотрудников:
val workPeriods = listOf(
Pair(LocalDateTime.of(2024, 3, 1, 9, 0), LocalDateTime.of(2024, 3, 1, 18, 0)),
Pair(LocalDateTime.of(2024, 3, 2, 10, 0), LocalDateTime.of(2024, 3, 2, 16, 30)),
Pair(LocalDateTime.of(2024, 3, 3, 8, 45), LocalDateTime.of(2024, 3, 3, 17, 15))
)
Рассчитайте общее отработанное время в часах и минутах.
Дан производственный календарь с праздниками:
val holidays = listOf(
LocalDate.of(2024, 1, 1), LocalDate.of(2024, 1, 2), LocalDate.of(2024, 1, 7),
LocalDate.of(2024, 2, 23), LocalDate.of(2024, 3, 8), LocalDate.of(2024, 5, 1)
)
Рассчитайте количество рабочих дней между двумя датами с учетом праздников.
Дан график работы магазина по дням недели:
val schedule = mapOf(
DayOfWeek.MONDAY to Pair(LocalTime.of(9, 0), LocalTime.of(21, 0)),
DayOfWeek.TUESDAY to Pair(LocalTime.of(9, 0), LocalTime.of(21, 0)),
DayOfWeek.WEDNESDAY to Pair(LocalTime.of(9, 0), LocalTime.of(21, 0)),
DayOfWeek.SATURDAY to Pair(LocalTime.of(10, 0), LocalTime.of(20, 0)),
DayOfWeek.SUNDAY to Pair(LocalTime.of(10, 0), LocalTime.of(18, 0))
)
Проверьте, открыт ли магазин в заданное время и день недели.
Дан список временных меток событий:
val events = listOf(
LocalDateTime.of(2024, 3, 1, 10, 0),
LocalDateTime.of(2024, 3, 1, 14, 30),
LocalDateTime.of(2024, 3, 2, 9, 15),
LocalDateTime.of(2024, 3, 2, 16, 45),
LocalDateTime.of(2024, 3, 3, 11, 20)
)
Сгруппируйте события по дням и найдите средний интервал между событиями в каждом дне.
Дан список дедлайнов для задач:
val deadlines = listOf(
Pair("Task A", LocalDateTime.of(2024, 3, 5, 17, 0)),
Pair("Task B", LocalDateTime.of(2024, 3, 7, 12, 0)),
Pair("Task C", LocalDateTime.of(2024, 3, 10, 23, 59))
)
Рассчитайте для каждой задачи, сколько рабочих часов осталось до дедлайна (рабочий день: 9:00-18:00, пн-пт).
Дан список периодов бронирования:
val bookings = listOf(
Pair(LocalDateTime.of(2024, 3, 1, 14, 0), LocalDateTime.of(2024, 3, 1, 16, 0)),
Pair(LocalDateTime.of(2024, 3, 1, 15, 30), LocalDateTime.of(2024, 3, 1, 17, 30)),
Pair(LocalDateTime.of(2024, 3, 2, 10, 0), LocalDateTime.of(2024, 3, 2, 12, 0))
)
Проверьте, есть ли пересечения в периодах бронирования.
Дан список времени в разных часовых поясах:
val times = listOf(
Pair("New York", ZonedDateTime.of(2024, 3, 1, 12, 0, 0, 0, ZoneId.of("America/New_York"))),
Pair("London", ZonedDateTime.of(2024, 3, 1, 17, 0, 0, 0, ZoneId.of("Europe/London"))),
Pair("Tokyo", ZonedDateTime.of(2024, 3, 2, 2, 0, 0, 0, ZoneId.of("Asia/Tokyo")))
)
Приведите все время к UTC и выведите результат.
Дан список ежедневных измерений температуры:
val temperatures = listOf(
Pair(LocalDateTime.of(2024, 3, 1, 12, 0), 25.3),
Pair(LocalDateTime.of(2024, 3, 2, 12, 0), 26.1),
Pair(LocalDateTime.of(2024, 3, 3, 12, 0), 24.8),
Pair(LocalDateTime.of(2024, 3, 4, 12, 0), 23.5)
)
Рассчитайте скользящее среднее температуры за 3 дня.
Дан график смен сотрудников:
val shifts = listOf(
Triple("Ivanov", LocalDateTime.of(2024, 3, 1, 8, 0), LocalDateTime.of(2024, 3, 1, 20, 0)),
Triple("Petrov", LocalDateTime.of(2024, 3, 1, 20, 0), LocalDateTime.of(2024, 3, 2, 8, 0)),
Triple("Sidorov", LocalDateTime.of(2024, 3, 2, 8, 0), LocalDateTime.of(2024, 3, 2, 20, 0))
)
Проверьте, что смены покрывают все время без промежутков и наложений.
Дан список дней рождения сотрудников:
val birthdays = listOf(
Pair("Anna", LocalDate.of(1990, 3, 15)),
Pair("Boris", LocalDate.of(1985, 12, 31)),
Pair("Olga", LocalDate.of(1992, 2, 29))
)
Рассчитайте возраст каждого сотрудника на текущую дату. Учтите особый случай для рожденных 29 февраля.