Есть данные со СКУД
. Это время входа
и время выхода
. Время работы организации с 8 до 17:00
(обед не считаем). Есть переменные - таймаут1 - 25 минут
и таймаут2 - 55 минут
(ниже объясню зачем они). Надо посчитать фактическое время работы. Время работы организации "Рога и копыта" с 08:00 до 17:00
Допустим человек пришел в 8:01
и ушел в 17:40
. Так как он пришел в 8:01
и количество минут 01 < 25(таймаут1)
,то время входа будет 08:00
. Время выхода 17:40
. 40 > 25(таймаут1)
но меньша 55(таймаут2)
- поэтому округляем до 30
(до получаса). Получается что фактическое время работы с 08:00
по 17:30
. Это простейший алгоритм и его перенос в код не составит проблем.
Проблемы возникают если во времени прихода или ухода будут часы.
Допустим если человек пришел в 10:25
и ушел в 16:45
. Как посчитать его фактическое время?
Как-то так
DateTime time = DateTime.Now;
DateTime rounded = time.AddMilliseconds(-time.Millisecond).AddSeconds(-time.Second);
int minutes = rounded.Minute < 25 ? 0 : rounded.Minute > 55 ? 60 : 30;
rounded = rounded.AddMinutes(minutes - rounded.Minute);
Часы сами увеличатся, если мы добавим 60.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть форма (это пример)Как сделать все границы самой формы уже, кроме верхней? Хотелось бы на выходе получить вот так:
Есть база SQLite, с таблицами - Messages и UsersСодержит примерно 100 000 пользователей
Как сделать так, чтобы перемещение формы осуществлялось не только за верхнюю границу, а за любую часть данной формы?