Перейти к содержимому

Калькулятор табеля рабочего времени

Отслеживайте еженедельные рабочие часы с вычетом перерывов и расчётом сверхурочных.

ДеньНачалоКонецЧасы
7.50h
7.50h
7.50h
7.50h
7.50h
Итого за неделю
37.50h
Среднее в день
7.50h
Обычные часы
37.50h
Сверхурочные (>40ч)
0.00h

Об этом инструменте

Калькулятор табеля рабочего времени—это неотъемлемый инструмент для отслеживания еженедельного рабочего времени, особенно для сотрудников, фрилансеров и менеджеров, которым необходимо контролировать затраты на рабочую силу и соблюдение нормативных актов по сверхурочным работам. В отличие от ручного отслеживания времени, этот цифровой калькулятор автоматически учитывает вычеты за перерывы и мгновенно рассчитывает общее отработанное время, регулярное время и сверхурочные—экономит время и исключает арифметические ошибки. Независимо от того, управляете ли вы еженедельной зарплатой команды, рассчитываете оплачиваемые часы для выставления счетов клиентам или просто ведёте личные записи, точный учёт рабочего времени является основой справедливой оплаты труда и деловой эффективности.

Использование этого инструмента просто: введите время прихода и ухода для каждого дня недели, укажите любые неоплачиваемые перерывы, которые вы взяли, и калькулятор мгновенно отобразит ваши общие часы, среднее количество часов в день и объёмы сверхурочных. Интерфейс справляется с обычными реальными сценариями, такими как ночные смены, пересекающие полночь, просто обнаруживая, когда время ухода раньше времени прихода, и автоматически корректируя расчёт. Вы можете добавлять или удалять дни по мере необходимости, экспериментировать с разными длительностями перерывов и видеть обновление статистики в режиме реального времени—идеально подходит для проверки табелей, планирования расписаний или понимания того, как сверхурочные накапливаются неделя за неделей.

Этот инструмент незаменим для менеджеров по расчёту зарплаты, руководителей смен, фрилансеров и всех, кто подлежит правилам сверхурочных работ или почасовому выставлению счетов клиентам. Он устраняет предположения из расчётов времени и помогает обеспечить соответствие трудовому законодательству, предусматривающему еженедельные пороги часов и ставки за сверхурочные. Обеспечивая мгновенную визуальную обратную связь о регулярных часах и сверхурочных, это наделяет работников полномочиями понимать свою оплату труда и помогает работодателям проверять точные записи об оплате труда.

Часто задаваемые вопросы

Реализация кода

from datetime import datetime, timedelta

def calculate_time_card(entries: list[dict]) -> dict:
    """Calculate total hours from clock-in/clock-out pairs.
    Each entry: {"clock_in": "HH:MM", "clock_out": "HH:MM", "break_minutes": 0}
    """
    total_seconds = 0
    for entry in entries:
        fmt = "%H:%M"
        clock_in = datetime.strptime(entry["clock_in"], fmt)
        clock_out = datetime.strptime(entry["clock_out"], fmt)
        if clock_out < clock_in:
            clock_out += timedelta(days=1)  # overnight shift
        duration = clock_out - clock_in
        break_secs = entry.get("break_minutes", 0) * 60
        total_seconds += max(0, duration.total_seconds() - break_secs)

    hours = int(total_seconds // 3600)
    minutes = int((total_seconds % 3600) // 60)
    return {
        "total_seconds": total_seconds,
        "total_hours": total_seconds / 3600,
        "formatted": f"{hours}h {minutes:02d}m",
    }

# Example time card
entries = [
    {"clock_in": "09:00", "clock_out": "12:30", "break_minutes": 0},
    {"clock_in": "13:00", "clock_out": "17:30", "break_minutes": 15},
    {"clock_in": "22:00", "clock_out": "06:00", "break_minutes": 30},  # overnight
]
result = calculate_time_card(entries)
print(f"Total: {result['formatted']} ({result['total_hours']:.2f} hours)")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.