chrono.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsTsTmClL5 80 of 173 menu
◀ ▶

Задачи на дату/время в Rust. Часть 5

Дан вектор строк:

let dates = vec!["2024-01-15", "15.02.2024", "2024/04/10"];

Распарсьте разными форматами в NaiveDate и отсортируйте.

Даны рабочие интервалы:

let periods = vec![((9, 0), (18, 0)), ((10, 30), (19, 30)), ((8, 45), (17, 15))];

Рассчитайте продолжительность каждого интервала в часах и минутах.

Дана HashMap:

let birthdays: HashMap<&str, NaiveDate> = HashMap::from([ ("Alice", NaiveDate::from_ymd_opt(1990, 3, 15).unwrap()), ("Bob", NaiveDate::from_ymd_opt(1985, 7, 22).unwrap()), ]);

Найдите, у кого день рождения в текущем месяце.

Дан вектор транзакций:

let tx = vec![("2024-01-15T09:30:00", 1000), ("2024-01-15T14:45:00", 2500)];

Сгруппируйте по дням и посчитайте сумму за каждый день.

Даны периоды отпусков:

let vacations = vec![ (NaiveDate::from_ymd_opt(2024, 6, 1).unwrap(), NaiveDate::from_ymd_opt(2024, 6, 14).unwrap()), (NaiveDate::from_ymd_opt(2024, 7, 15).unwrap(), NaiveDate::from_ymd_opt(2024, 7, 29).unwrap()), ];

Проверьте, есть ли пересечения периодов.

Дан график магазина:

let schedule: HashMap<u32, ((u32,u32),(u32,u32))> = HashMap::from([ (1, ((9,0), (21,0))), // понедельник (6, ((10,0), (20,0))), // суббота ]);

Рассчитайте общее рабочее время за неделю (ключ — номер дня).

Дан вектор событий:

let events = vec![ NaiveDate::from_ymd_opt(2024, 5, 10).unwrap().and_hms_opt(14, 0, 0).unwrap(), NaiveDate::from_ymd_opt(2024, 5, 10).unwrap().and_hms_opt(18, 30, 0).unwrap(), ];

Найдите минимальный интервал между событиями.

Даны измерения:

let m: HashMap<NaiveDate, f64> = HashMap::from([ (NaiveDate::from_ymd_opt(2024, 1, 1).unwrap(), 25.3), (NaiveDate::from_ymd_opt(2024, 1, 2).unwrap(), 26.1), ]);

Рассчитайте среднюю температуру и день с максимумом.

Даны праздники:

let holidays = vec![ NaiveDate::from_ymd_opt(2024, 1, 1).unwrap(), NaiveDate::from_ymd_opt(2024, 1, 7).unwrap(), ];

Для заданного месяца посчитайте рабочие дни (пн–пт без праздников).

Даны часовые пояса:

let zones = vec!["+03:00", "+00:00", "-05:00"];

Для текущего момента выведите время в каждой зоне через FixedOffset.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить