Калькулятор времени в пределах 24 часов
Считает отработанное за день время по времени начала и окончания. Можно учесть перерывы и обед.
Логика вычислений
Калькулятор считает отработанное за день время по введённым времени начала и окончания, при необходимости вычитая перерывы. Каждое время суток сначала переводится в минуты от полуночи, чтобы работать с обычными числами:
t = ч × 60 + мин
где:
- t — момент времени в минутах от полуночи, мин;
- ч, мин — часы и минуты введённого времени.
Базовая продолжительность смены — это разница между окончанием и началом. Если окончание оказывается раньше начала, смена считается перешедшей через полночь, и к разнице добавляются сутки (1440 минут):
D = t_кон − t_нач при t_кон < t_нач: D = t_кон − t_нач + 1440
где:
- D — продолжительность смены до вычета перерывов, мин;
- t_нач, t_кон — время начала и окончания в минутах от полуночи, мин;
- 1440 — число минут в сутках (24 × 60), мин.
Каждый перерыв (включая обед) считается так же — как разница своих конца и начала, тоже с учётом возможного перехода через полночь:
d_i = t_кон_i − t_нач_i при t_кон_i < t_нач_i: d_i = t_кон_i − t_нач_i + 1440
где:
- d_i — продолжительность i-го перерыва, мин;
- t_нач_i, t_кон_i — время начала и окончания i-го перерыва, мин.
Итоговое отработанное время — это продолжительность смены за вычетом всех перерывов:
W = D − Σ d_i
где:
- W — итоговое отработанное время, мин;
- Σ d_i — суммарная продолжительность всех перерывов, мин.
Результат показывается в одном из трёх форматов вывода. В минутах берётся прямое значение W, в часах оно делится на 60, а формат ЧЧ:ММ раскладывает W на целые часы и оставшиеся минуты:
W_мин = W W_ч = W / 60 ЧЧ:ММ = ⌊W / 60⌋ : (W − 60 × ⌊W / 60⌋)
где:
- W_мин — результат в минутах, мин;
- W_ч — результат в часах (с округлением до двух знаков), ч;
- ⌊W / 60⌋ — целое число полных часов, ч;
- W − 60 × ⌊W / 60⌋ — остаток в минутах сверх полных часов, мин.
Примеры расчётов
| Начало | Окончание | Перерывы | D, мин | Σ d_i, мин | W (результат) | Комментарий |
|---|---|---|---|---|---|---|
| 09:00 | 18:00 | 13:00−14:00 | 1080 − 540 = 540 | 60 | 480 мин = 8 ч = 08:00 | Стандартный рабочий день с обедом. |
| 08:00 | 17:00 | — | 1020 − 480 = 540 | 0 | 540 мин = 9 ч = 09:00 | Без перерывов: W = D. |
| 09:30 | 18:15 | 13:00−13:45 | 1095 − 570 = 525 | 45 | 480 мин = 8 ч = 08:00 | Дробные минуты на входе, ровный итог. |
| 10:00 | 19:00 | 13:00−13:30; 16:00−16:15 | 1140 − 600 = 540 | 30 + 15 = 45 | 495 мин = 8,25 ч = 08:15 | Два перерыва, суммируются. |
| 22:00 | 06:00 | 02:00−02:30 | 360 − 1320 + 1440 = 480 | 30 | 450 мин = 7,5 ч = 07:30 | Ночная смена через полночь (+1440). |
| 23:00 | 07:30 | 03:00−04:00 | 450 − 1380 + 1440 = 510 | 60 | 450 мин = 7,5 ч = 07:30 | Переход через полночь с учётом обеда. |
| 00:00 | 12:00 | — | 720 − 0 = 720 | 0 | 720 мин = 12 ч = 12:00 | Граничный случай от полуночи. |
