コンテンツへスキップ
🛠️ToolsShed

タイムカード計算ツール

休憩控除と残業計算を含む週次勤務時間を記録します。

開始終了時間
7.50h
7.50h
7.50h
7.50h
7.50h
週合計
37.50h
平均日次
7.50h
通常時間
37.50h
残業(>40h)
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.