{"id":32702,"date":"2026-04-18T13:05:29","date_gmt":"2026-04-18T11:05:29","guid":{"rendered":"https:\/\/www.finanzen.net\/ratgeber\/?p=32702"},"modified":"2026-04-18T13:06:27","modified_gmt":"2026-04-18T11:06:27","slug":"arbeitszeitrechner","status":"publish","type":"post","link":"https:\/\/www.finanzen.net\/ratgeber\/rechner-vergleiche\/arbeitszeitrechner\/","title":{"rendered":"Arbeitszeitrechner"},"content":{"rendered":"\n<div class=\"container container--narrow\">\n    <div class=\"header\">\n                <div class=\"header__text\">\n                            <div class=\"headline headline--preline headline--h4 header__preline\">\n                                     <\/div>\n                                        <h1 class=\"headline headline--h1 header__headline headline--has-preline\">\n                    Arbeitszeitrechner: Berechne deine t\u00e4gliche Arbeitszeit                <\/h1>\n                        <div class=\"header__excerpt flow-content\">\n                                    <p>Von wann bis wann hast du gearbeitet, und wie viel davon war Pause? Unser Arbeitszeitrechner berechnet deine Nettoarbeitszeit auf die Minute genau. Trag Arbeitsbeginn, Arbeitsende und Pausenzeiten ein und du siehst sofort, wie viele Stunden du tats\u00e4chlich gearbeitet hast.<\/p>\n                            <\/div>\n            <div class=\"header__footer\">\n                <span class=\"header__meta\">\n                    <img loading=\"lazy\" decoding=\"async\" class=\"header__author-image\"\n                         src=\"https:\/\/www.finanzen.net\/ratgeber\/wp-content\/uploads\/2025\/10\/Roland_Kuse-1-150x150.jpg\"\n                         width=\"58\"\n                         height=\"58\"\n                         alt=\"\">\n                    <span class=\"header__meta-info\">\n                        <span class=\"header__author-name\">\n                            von <a href=\"https:\/\/www.finanzen.net\/ratgeber\/author\/roland-kruse\/\" title=\"Beitr\u00e4ge von Roland Kuse\" rel=\"author\" class=\"link link--no-underline\">Roland Kuse<\/a>                        <\/span>\n                        <span class=\"header__date\">\n                            <span class=\"hide-on-smartphone\">Aktualisiert am<\/span>\n                            <time datetime=\"2026-04-18 13:06\"\n                                  title=\"Aktualisiert am 18.04.2026\">\n                                18.04.26                            <\/time>\n                        <\/span>\n                    <\/span>\n                <\/span>\n\n                                    <div class=\"header__buttons\">\n                                                    <a class=\"fnet-button fnet-button--small\"\n                                                                  style=\"--button-background:#50ce6b;--button-hover-background:#50ce6b;\"\n                                                              href=\"https:\/\/www.finanzen.net\/ratgeber\/rechner-vergleiche\/zinseszinsrechner\/\"\n                               target=\"\">\n                                zum Zinseszinsrechner                            <\/a>\n                                            <\/div>\n                            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n\n<div class=\"container container--narrow\">\n            <style>\r\n.wp-arbeitszeit-calculator-container { max-width: 900px; margin: 20px auto; padding: 20px; font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif; background-color: #ffffff; border-radius: 16px; border: 3px solid #e2e8f0; box-shadow: 0 4px 12px rgba(0,0,0,0.1); color: #1a202c; }\r\n.wp-arbeitszeit-calculator-container .section-title { font-size: 14px; font-weight: 700; color: #64748b; text-transform: uppercase; letter-spacing: 0.5px; margin: 25px 0 15px 0; padding-bottom: 8px; border-bottom: 2px solid #e2e8f0; }\r\n.wp-arbeitszeit-calculator-container .section-title:first-of-type { margin-top: 0; }\r\n.wp-arbeitszeit-calculator-container .calculator-form .input-group { display: flex; align-items: center; margin-bottom: 15px; }\r\n.wp-arbeitszeit-calculator-container .calculator-form .input-group label { width: 200px; flex-shrink: 0; margin-right: 10px; font-weight: 600; color: #4a5568; display: flex; align-items: center; gap: 6px; }\r\n.wp-arbeitszeit-calculator-container .input-wrapper { position: relative; }\r\n.wp-arbeitszeit-calculator-container .time-inputs { display: flex; gap: 10px; flex-grow: 1; align-items: center; }\r\n.wp-arbeitszeit-calculator-container .time-inputs .input-wrapper { flex: 0 0 100px; }\r\n.wp-arbeitszeit-calculator-container .time-separator { font-size: 20px; font-weight: 700; color: #64748b; }\r\n.wp-arbeitszeit-calculator-container .calculator-form input[type=\"number\"] { width: 100%; padding: 10px 12px; padding-right: 45px; border: 1px solid #e2e8f0; border-radius: 8px; box-sizing: border-box; font-size: 16px; text-align: center; }\r\n.wp-arbeitszeit-calculator-container .input-unit { position: absolute; top: 50%; transform: translateY(-50%); right: 10px; color: #718096; font-weight: 500; pointer-events: none; font-size: 12px; }\r\n.wp-arbeitszeit-calculator-container .tooltip-trigger { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; background-color: #e2e8f0; color: #64748b; border-radius: 50%; font-size: 12px; font-weight: 700; cursor: help; position: relative; }\r\n.wp-arbeitszeit-calculator-container .tooltip-trigger:hover::after { content: attr(data-tooltip); position: absolute; left: 50%; transform: translateX(-50%); bottom: 100%; margin-bottom: 8px; padding: 8px 12px; background-color: #1e293b; color: white; font-size: 12px; font-weight: 400; white-space: nowrap; border-radius: 6px; z-index: 100; max-width: 280px; white-space: normal; }\r\n.wp-arbeitszeit-calculator-container .button-container { display: flex; gap: 10px; margin-top: 25px; }\r\n.wp-arbeitszeit-calculator-container .calculate-button,\r\n.wp-arbeitszeit-calculator-container .reset-button { border-radius: 8px; padding: 12px 20px; cursor: pointer; width: 100%; font-size: 16px; font-weight: 700; transition: all 0.2s; border: none; }\r\n.wp-arbeitszeit-calculator-container .calculate-button { background-color: #4A69FF; color: white; }\r\n.wp-arbeitszeit-calculator-container .calculate-button:hover { background-color: #3a50d2; }\r\n.wp-arbeitszeit-calculator-container .reset-button { background-color: #fee2e2; color: #dc2626; border: 1px solid #fecaca; }\r\n.wp-arbeitszeit-calculator-container .reset-button:hover { background-color: #fecaca; }\r\n\r\n.wp-arbeitszeit-calculator-container .pausen-container { margin-bottom: 15px; }\r\n.wp-arbeitszeit-calculator-container .pause-item { display: flex; align-items: center; margin-bottom: 15px; }\r\n.wp-arbeitszeit-calculator-container .pause-item label.pause-label { width: 200px; flex-shrink: 0; margin-right: 10px; font-weight: 600; color: #4a5568; display: flex; align-items: center; gap: 6px; }\r\n.wp-arbeitszeit-calculator-container .pause-item .time-inputs { display: flex; gap: 10px; flex-grow: 1; align-items: center; }\r\n.wp-arbeitszeit-calculator-container .pause-item .time-inputs .input-wrapper { flex: 0 0 100px; }\r\n.wp-arbeitszeit-calculator-container .pause-item .remove-pause-btn { background: none; border: none; color: #dc2626; cursor: pointer; font-size: 24px; padding: 5px 12px; margin-left: 10px; border-radius: 4px; transition: background-color 0.2s; line-height: 1; }\r\n.wp-arbeitszeit-calculator-container .pause-item .remove-pause-btn:hover { background-color: #fee2e2; }\r\n.wp-arbeitszeit-calculator-container .add-pause-btn { display: inline-flex; align-items: center; gap: 8px; background-color: #f0fdf4; color: #16a34a; border: 1px dashed #86efac; padding: 10px 16px; border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600; transition: all 0.2s; }\r\n.wp-arbeitszeit-calculator-container .add-pause-btn:hover { background-color: #dcfce7; border-style: solid; }\r\n\r\n.wp-arbeitszeit-calculator-container .results-wrapper { margin-top: 30px; border-top: 2px solid #e2e8f0; padding-top: 25px; }\r\n.wp-arbeitszeit-calculator-container .result-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }\r\n.wp-arbeitszeit-calculator-container .result-header-title { font-size: 20px; font-weight: 700; margin: 0; }\r\n.wp-arbeitszeit-calculator-container .permalink-button { background: none; border: none; color: #4A69FF; cursor: pointer; font-size: 14px; font-weight: 700; }\r\n.wp-arbeitszeit-calculator-container .result-main { background: linear-gradient(135deg, #4A69FF 0%, #6B8CFF 100%); color: white; padding: 30px; border-radius: 12px; text-align: center; margin-bottom: 24px; }\r\n.wp-arbeitszeit-calculator-container .result-main .result-label { font-size: 16px; opacity: 0.9; margin-bottom: 8px; }\r\n.wp-arbeitszeit-calculator-container .result-main .result-number { font-size: 48px; font-weight: 800; }\r\n.wp-arbeitszeit-calculator-container .result-main .result-sub { font-size: 14px; opacity: 0.85; margin-top: 8px; }\r\n.wp-arbeitszeit-calculator-container .result-details { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-bottom: 24px; }\r\n.wp-arbeitszeit-calculator-container .result-card { background-color: #f8fafc; padding: 16px; border-radius: 10px; border: 1px solid #e2e8f0; }\r\n.wp-arbeitszeit-calculator-container .result-card .card-label { font-size: 13px; color: #64748b; margin-bottom: 4px; }\r\n.wp-arbeitszeit-calculator-container .result-card .card-value { font-size: 20px; font-weight: 700; color: #1e293b; }\r\n.wp-arbeitszeit-calculator-container .result-card .card-value.positive { color: #16a34a; }\r\n.wp-arbeitszeit-calculator-container .result-card .card-value.negative { color: #dc2626; }\r\n.wp-arbeitszeit-calculator-container .result-card .card-value.warning { color: #f59e0b; }\r\n.wp-arbeitszeit-calculator-container .result-summary { background-color: #f0fdf4; border: 1px solid #bbf7d0; padding: 16px; border-radius: 8px; margin-bottom: 24px; line-height: 1.7; color: #15803d; }\r\n.wp-arbeitszeit-calculator-container .result-summary.warning-result { background-color: #fffbeb; border-color: #fde68a; color: #b45309; }\r\n.wp-arbeitszeit-calculator-container .result-summary strong { color: inherit; }\r\n\r\n.wp-arbeitszeit-calculator-container .timeline-section { margin-top: 24px; }\r\n.wp-arbeitszeit-calculator-container .timeline-section h4 { font-size: 18px; font-weight: 700; margin-bottom: 16px; }\r\n.wp-arbeitszeit-calculator-container .timeline-container { position: relative; padding: 20px 0; }\r\n.wp-arbeitszeit-calculator-container .timeline-bar { height: 40px; background-color: #e2e8f0; border-radius: 8px; position: relative; overflow: hidden; }\r\n.wp-arbeitszeit-calculator-container .timeline-segment { position: absolute; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 600; color: white; }\r\n.wp-arbeitszeit-calculator-container .timeline-segment.work { background-color: #4A69FF; }\r\n.wp-arbeitszeit-calculator-container .timeline-segment.pause { background-color: #f59e0b; }\r\n.wp-arbeitszeit-calculator-container .timeline-labels { display: flex; justify-content: space-between; margin-top: 8px; font-size: 12px; color: #64748b; }\r\n.wp-arbeitszeit-calculator-container .timeline-legend { display: flex; gap: 20px; margin-top: 12px; }\r\n.wp-arbeitszeit-calculator-container .timeline-legend-item { display: flex; align-items: center; gap: 6px; font-size: 13px; color: #4a5568; }\r\n.wp-arbeitszeit-calculator-container .timeline-legend-item::before { content: ''; display: block; width: 16px; height: 16px; border-radius: 4px; }\r\n.wp-arbeitszeit-calculator-container .timeline-legend-item.work::before { background-color: #4A69FF; }\r\n.wp-arbeitszeit-calculator-container .timeline-legend-item.pause::before { background-color: #f59e0b; }\r\n\r\n.wp-arbeitszeit-calculator-container .overview-section { margin-top: 24px; }\r\n.wp-arbeitszeit-calculator-container .show-table-btn { background: none; border: 1px solid #e2e8f0; color: #475569; padding: 10px 16px; border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600; }\r\n.wp-arbeitszeit-calculator-container .show-table-btn:hover { background-color: #f8fafc; }\r\n.wp-arbeitszeit-calculator-container .export-button { border-radius: 8px; padding: 12px 20px; cursor: pointer; width: 100%; font-size: 16px; font-weight: 700; background-color: #f0fdf4; color: #16a34a; border: 1px solid #bbf7d0; margin-top: 16px; }\r\n.wp-arbeitszeit-calculator-container .export-button:hover { background-color: #dcfce7; }\r\n.wp-arbeitszeit-calculator-container .table-wrapper { max-height: 400px; overflow-y: auto; border: 1px solid #e2e8f0; border-radius: 8px; margin-top: 16px; }\r\n.wp-arbeitszeit-calculator-container .data-table { width: 100%; border-collapse: collapse; font-size: 14px; }\r\n.wp-arbeitszeit-calculator-container .data-table th,\r\n.wp-arbeitszeit-calculator-container .data-table td { padding: 10px 12px; text-align: left; border-bottom: 1px solid #e2e8f0; }\r\n.wp-arbeitszeit-calculator-container .data-table th { background-color: #f8fafc; font-weight: 600; color: #475569; position: sticky; top: 0; }\r\n.wp-arbeitszeit-calculator-container .data-table td:last-child { text-align: right; }\r\n.wp-arbeitszeit-calculator-container .data-table tbody tr:hover { background-color: #f8fafc; }\r\n.wp-arbeitszeit-calculator-container .data-table .row-work { border-left: 3px solid #4A69FF; }\r\n.wp-arbeitszeit-calculator-container .data-table .row-pause { border-left: 3px solid #f59e0b; background-color: #fffbeb; }\r\n\r\n.wp-arbeitszeit-calculator-container .info-box { background-color: #f0f9ff; border: 1px solid #bae6fd; padding: 12px 16px; border-radius: 8px; margin-top: 16px; font-size: 13px; color: #0369a1; }\r\n\r\n.wp-arbeitszeit-calculator-container .soll-section { margin-top: 15px; padding-top: 15px; border-top: 1px dashed #e2e8f0; }\r\n\r\n.wp-arbeitszeit-calculator-container .lohn-input-wrapper { max-width: 150px; }\r\n\r\n@media (max-width: 768px) {\r\n    .wp-arbeitszeit-calculator-container .calculator-form .input-group { flex-direction: column; align-items: flex-start; }\r\n    .wp-arbeitszeit-calculator-container .calculator-form .input-group label { width: 100%; margin-bottom: 8px; }\r\n    .wp-arbeitszeit-calculator-container .pause-item { flex-direction: column; align-items: flex-start; }\r\n    .wp-arbeitszeit-calculator-container .pause-item label.pause-label { width: 100%; margin-bottom: 8px; }\r\n    .wp-arbeitszeit-calculator-container .pause-item .remove-pause-btn { margin-left: 0; margin-top: 10px; align-self: flex-end; }\r\n    .wp-arbeitszeit-calculator-container .time-inputs { flex-wrap: wrap; }\r\n    .wp-arbeitszeit-calculator-container .result-main .result-number { font-size: 36px; }\r\n    .wp-arbeitszeit-calculator-container .result-details { grid-template-columns: 1fr; }\r\n    .wp-arbeitszeit-calculator-container .button-container { flex-direction: column; }\r\n}\r\n\r\n\/* CTA-Button *\/\r\n.wp-arbeitszeit-calculator-container .cta-button-container { margin-top: 10px; }\r\n.wp-arbeitszeit-calculator-container .cta-button-container .cta-button {\r\n    display: block;\r\n    width: 100%;\r\n    border-radius: 8px;\r\n    padding: 12px 20px;\r\n    cursor: pointer;\r\n    font-size: 16px;\r\n    font-weight: 700;\r\n    transition: all 0.2s;\r\n    border: none;\r\n    background-color: #fa2879;\r\n    color: white;\r\n    text-align: center;\r\n    text-decoration: none;\r\n    box-sizing: border-box;\r\n}\r\n.wp-arbeitszeit-calculator-container .cta-button-container .cta-button:hover { background-color: #d91f66; }\r\n<\/style>\r\n\r\n<div class=\"wp-arbeitszeit-calculator-container\">\r\n    <form class=\"calculator-form\" onsubmit=\"return false;\">\r\n        <div class=\"section-title\">Arbeitszeiten<\/div>\r\n        \r\n        <div class=\"input-group\">\r\n            <label for=\"az-beginn-std\">\r\n                Arbeitsbeginn\r\n                <span class=\"tooltip-trigger\" data-tooltip=\"Uhrzeit, zu der Sie mit der Arbeit begonnen haben.\">?<\/span>\r\n            <\/label>\r\n            <div class=\"time-inputs\">\r\n                <div class=\"input-wrapper\">\r\n                    <input type=\"number\" id=\"az-beginn-std\" value=\"8\" min=\"0\" max=\"23\" step=\"1\">\r\n                    <span class=\"input-unit\">Std<\/span>\r\n                <\/div>\r\n                <span class=\"time-separator\">:<\/span>\r\n                <div class=\"input-wrapper\">\r\n                    <input type=\"number\" id=\"az-beginn-min\" value=\"0\" min=\"0\" max=\"59\" step=\"1\">\r\n                    <span class=\"input-unit\">Min<\/span>\r\n                <\/div>\r\n                <span style=\"margin-left: 10px; color: #64748b; font-size: 14px;\">Uhr<\/span>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"input-group\">\r\n            <label for=\"az-ende-std\">\r\n                Arbeitsende\r\n                <span class=\"tooltip-trigger\" data-tooltip=\"Uhrzeit, zu der Sie die Arbeit beendet haben.\">?<\/span>\r\n            <\/label>\r\n            <div class=\"time-inputs\">\r\n                <div class=\"input-wrapper\">\r\n                    <input type=\"number\" id=\"az-ende-std\" value=\"17\" min=\"0\" max=\"23\" step=\"1\">\r\n                    <span class=\"input-unit\">Std<\/span>\r\n                <\/div>\r\n                <span class=\"time-separator\">:<\/span>\r\n                <div class=\"input-wrapper\">\r\n                    <input type=\"number\" id=\"az-ende-min\" value=\"0\" min=\"0\" max=\"59\" step=\"1\">\r\n                    <span class=\"input-unit\">Min<\/span>\r\n                <\/div>\r\n                <span style=\"margin-left: 10px; color: #64748b; font-size: 14px;\">Uhr<\/span>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"section-title\">Pausen<\/div>\r\n        \r\n        <div class=\"pausen-container\" id=\"az-pausen-container\">\r\n            <div class=\"pause-item\" data-pause-id=\"1\">\r\n                <label for=\"az-pause-stunde-1\" class=\"pause-label\">\r\n                    Pause 1\r\n                    <span class=\"tooltip-trigger\" data-tooltip=\"Dauer der Pause in Stunden und Minuten.\">?<\/span>\r\n                <\/label>\r\n                <div class=\"time-inputs\">\r\n                    <div class=\"input-wrapper\">\r\n                        <input type=\"number\" id=\"az-pause-stunde-1\" class=\"pause-stunde\" value=\"0\" min=\"0\" max=\"23\" step=\"1\">\r\n                        <span class=\"input-unit\">Std<\/span>\r\n                    <\/div>\r\n                    <span class=\"time-separator\">:<\/span>\r\n                    <div class=\"input-wrapper\">\r\n                        <input type=\"number\" id=\"az-pause-minute-1\" class=\"pause-minute\" value=\"30\" min=\"0\" max=\"59\" step=\"1\">\r\n                        <span class=\"input-unit\">Min<\/span>\r\n                    <\/div>\r\n                <\/div>\r\n                <button type=\"button\" class=\"remove-pause-btn\" title=\"Pause entfernen\">\u00d7<\/button>\r\n            <\/div>\r\n        <\/div>\r\n        \r\n        <button type=\"button\" class=\"add-pause-btn\" id=\"az-add-pause\">\r\n            <span style=\"font-size: 18px;\">+<\/span> Weitere Pause hinzuf\u00fcgen\r\n        <\/button>\r\n\r\n        <div class=\"section-title soll-section\">Optionale Angaben<\/div>\r\n\r\n        <div class=\"input-group\">\r\n            <label for=\"az-soll-std\">\r\n                Sollarbeitszeit\r\n                <span class=\"tooltip-trigger\" data-tooltip=\"Ihre t\u00e4gliche Sollarbeitszeit (z.B. 8 Stunden bei Vollzeit).\">?<\/span>\r\n            <\/label>\r\n            <div class=\"time-inputs\">\r\n                <div class=\"input-wrapper\">\r\n                    <input type=\"number\" id=\"az-soll-std\" value=\"8\" min=\"0\" max=\"24\" step=\"1\">\r\n                    <span class=\"input-unit\">Std<\/span>\r\n                <\/div>\r\n                <span class=\"time-separator\">:<\/span>\r\n                <div class=\"input-wrapper\">\r\n                    <input type=\"number\" id=\"az-soll-min\" value=\"0\" min=\"0\" max=\"59\" step=\"1\">\r\n                    <span class=\"input-unit\">Min<\/span>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"input-group\">\r\n            <label for=\"az-stundenlohn\">\r\n                Stundenlohn (brutto)\r\n                <span class=\"tooltip-trigger\" data-tooltip=\"Ihr Brutto-Stundenlohn zur Berechnung des Tagesverdienstes.\">?<\/span>\r\n            <\/label>\r\n            <div class=\"input-wrapper lohn-input-wrapper\">\r\n                <input type=\"number\" id=\"az-stundenlohn\" value=\"\" min=\"0\" step=\"0.01\" placeholder=\"\u2014\">\r\n                <span class=\"input-unit\">\u20ac\/Std<\/span>\r\n            <\/div>\r\n        <\/div>\r\n    <\/form>\r\n\r\n    <div class=\"button-container\">\r\n        <button type=\"button\" class=\"reset-button\" id=\"az-reset-btn\">Zur\u00fccksetzen<\/button>\r\n        <button type=\"submit\" class=\"calculate-button\" id=\"az-calc-btn\">Berechnen<\/button>\r\n    <\/div>\r\n\r\n    <!-- CTA-Button -->\r\n    <div class=\"cta-button-container\">\r\n        <a class=\"cta-button\" style=\"background-color: #fa2879; color: yellow; display: block; border-radius: 8px; padding: 12px 24px; font-size: 16px; font-weight: 700; text-align: center; text-decoration: none;\" href=\"https:\/\/g.finanzen.net\/zero-fnet_331e-ratgeber-arbeitszeitrechner\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"color: white;\">Kostenloses Depot gesucht? Spare Ordergeb\u00fchren mit finanzen.net ZERO!<\/a>\r\n    <\/div>\r\n\r\n    <div class=\"results-wrapper\" id=\"az-results\" style=\"display: none;\">\r\n        <div class=\"result-header\">\r\n            <h3 class=\"result-header-title\">Ergebnis<\/h3>\r\n            <button type=\"button\" class=\"permalink-button\" id=\"az-permalink-btn\">Link kopieren<\/button>\r\n        <\/div>\r\n        \r\n        <div class=\"result-main\">\r\n            <div class=\"result-label\">Nettoarbeitszeit<\/div>\r\n            <div class=\"result-number\" id=\"az-res-netto-short\"><\/div>\r\n            <div class=\"result-sub\" id=\"az-res-netto-long\"><\/div>\r\n        <\/div>\r\n\r\n        <div class=\"result-details\">\r\n            <div class=\"result-card\">\r\n                <div class=\"card-label\">Arbeitsbeginn<\/div>\r\n                <div class=\"card-value\" id=\"az-res-beginn\"><\/div>\r\n            <\/div>\r\n            <div class=\"result-card\">\r\n                <div class=\"card-label\">Arbeitsende<\/div>\r\n                <div class=\"card-value\" id=\"az-res-ende\"><\/div>\r\n            <\/div>\r\n            <div class=\"result-card\">\r\n                <div class=\"card-label\">Bruttoarbeitszeit<\/div>\r\n                <div class=\"card-value\" id=\"az-res-brutto\"><\/div>\r\n            <\/div>\r\n            <div class=\"result-card\">\r\n                <div class=\"card-label\">Pausenzeit gesamt<\/div>\r\n                <div class=\"card-value\" id=\"az-res-pausen\"><\/div>\r\n            <\/div>\r\n            <div class=\"result-card\" id=\"az-card-soll\">\r\n                <div class=\"card-label\">Sollarbeitszeit<\/div>\r\n                <div class=\"card-value\" id=\"az-res-soll\"><\/div>\r\n            <\/div>\r\n            <div class=\"result-card\" id=\"az-card-diff\">\r\n                <div class=\"card-label\">Differenz (\u00dcber-\/Unterstunden)<\/div>\r\n                <div class=\"card-value\" id=\"az-res-diff\"><\/div>\r\n            <\/div>\r\n            <div class=\"result-card\" id=\"az-card-stundenlohn\" style=\"display: none;\">\r\n                <div class=\"card-label\">Stundenlohn (brutto)<\/div>\r\n                <div class=\"card-value\" id=\"az-res-stundenlohn\"><\/div>\r\n            <\/div>\r\n            <div class=\"result-card\" id=\"az-card-bruttolohn\" style=\"display: none;\">\r\n                <div class=\"card-label\">Bruttolohn\/Tag (bei Sollzeit)<\/div>\r\n                <div class=\"card-value\" id=\"az-res-bruttolohn\"><\/div>\r\n            <\/div>\r\n            <div class=\"result-card\" id=\"az-card-verdienst\" style=\"display: none;\">\r\n                <div class=\"card-label\">Tagesverdienst (tats\u00e4chlich)<\/div>\r\n                <div class=\"card-value\" id=\"az-res-verdienst\"><\/div>\r\n            <\/div>\r\n            <div class=\"result-card\" id=\"az-card-lohndiff\" style=\"display: none;\">\r\n                <div class=\"card-label\">Lohndifferenz zum Soll<\/div>\r\n                <div class=\"card-value\" id=\"az-res-lohndiff\"><\/div>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"result-summary\" id=\"az-res-summary\"><\/div>\r\n\r\n        <div class=\"timeline-section\">\r\n            <h4>Tages\u00fcbersicht<\/h4>\r\n            <div class=\"timeline-container\">\r\n                <div class=\"timeline-bar\" id=\"az-timeline-bar\"><\/div>\r\n                <div class=\"timeline-labels\">\r\n                    <span id=\"az-timeline-start\"><\/span>\r\n                    <span id=\"az-timeline-end\"><\/span>\r\n                <\/div>\r\n            <\/div>\r\n            <div class=\"timeline-legend\">\r\n                <span class=\"timeline-legend-item work\">Arbeitszeit<\/span>\r\n                <span class=\"timeline-legend-item pause\">Pause<\/span>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"overview-section\">\r\n            <button type=\"button\" class=\"show-table-btn\" id=\"az-table-toggle\">Detail\u00fcbersicht ausblenden<\/button>\r\n            <div class=\"table-wrapper\" id=\"az-table-wrapper\">\r\n                <table class=\"data-table\">\r\n                    <thead>\r\n                        <tr>\r\n                            <th>Zeitraum<\/th>\r\n                            <th>Von<\/th>\r\n                            <th>Bis<\/th>\r\n                            <th>Dauer<\/th>\r\n                        <\/tr>\r\n                    <\/thead>\r\n                    <tbody id=\"az-table-body\"><\/tbody>\r\n                <\/table>\r\n            <\/div>\r\n            <button type=\"button\" class=\"export-button\" id=\"az-export-btn\" style=\"display: none;\">\u00dcbersicht als CSV exportieren<\/button>\r\n        <\/div>\r\n\r\n        <div class=\"info-box\">\r\n            <strong>Hinweis:<\/strong> Nach dem Arbeitszeitgesetz (ArbZG) sind bei einer Arbeitszeit von mehr als 6 Stunden mindestens 30 Minuten Pause vorgeschrieben, bei mehr als 9 Stunden mindestens 45 Minuten.\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script>\r\n(function() {\r\n    'use strict';\r\n    \r\n    if (document.readyState === 'loading') {\r\n        document.addEventListener('DOMContentLoaded', initCalculator);\r\n    } else {\r\n        initCalculator();\r\n    }\r\n    \r\n    function initCalculator() {\r\n        var calcBtn = document.getElementById('az-calc-btn');\r\n        if (!calcBtn || calcBtn.dataset.initialized === 'true') return;\r\n        calcBtn.dataset.initialized = 'true';\r\n        \r\n        var pauseCounter = 1;\r\n        var tableVisible = true;\r\n        var lastResult = null;\r\n        \r\n        var els = {\r\n            beginnStd: document.getElementById('az-beginn-std'),\r\n            beginnMin: document.getElementById('az-beginn-min'),\r\n            endeStd: document.getElementById('az-ende-std'),\r\n            endeMin: document.getElementById('az-ende-min'),\r\n            sollStd: document.getElementById('az-soll-std'),\r\n            sollMin: document.getElementById('az-soll-min'),\r\n            stundenlohn: document.getElementById('az-stundenlohn'),\r\n            pausenContainer: document.getElementById('az-pausen-container'),\r\n            addPauseBtn: document.getElementById('az-add-pause'),\r\n            calcBtn: document.getElementById('az-calc-btn'),\r\n            resetBtn: document.getElementById('az-reset-btn'),\r\n            permalinkBtn: document.getElementById('az-permalink-btn'),\r\n            exportBtn: document.getElementById('az-export-btn'),\r\n            resultsWrapper: document.getElementById('az-results'),\r\n            tableToggle: document.getElementById('az-table-toggle'),\r\n            tableWrapper: document.getElementById('az-table-wrapper'),\r\n            timelineBar: document.getElementById('az-timeline-bar'),\r\n            resNettoShort: document.getElementById('az-res-netto-short'),\r\n            resNettoLong: document.getElementById('az-res-netto-long'),\r\n            resBeginn: document.getElementById('az-res-beginn'),\r\n            resEnde: document.getElementById('az-res-ende'),\r\n            resBrutto: document.getElementById('az-res-brutto'),\r\n            resPausen: document.getElementById('az-res-pausen'),\r\n            resSoll: document.getElementById('az-res-soll'),\r\n            resDiff: document.getElementById('az-res-diff'),\r\n            resStundenlohn: document.getElementById('az-res-stundenlohn'),\r\n            resBruttolohn: document.getElementById('az-res-bruttolohn'),\r\n            resVerdienst: document.getElementById('az-res-verdienst'),\r\n            resLohndiff: document.getElementById('az-res-lohndiff'),\r\n            resSummary: document.getElementById('az-res-summary'),\r\n            timelineStart: document.getElementById('az-timeline-start'),\r\n            timelineEnd: document.getElementById('az-timeline-end'),\r\n            tableBody: document.getElementById('az-table-body'),\r\n            cardSoll: document.getElementById('az-card-soll'),\r\n            cardDiff: document.getElementById('az-card-diff'),\r\n            cardStundenlohn: document.getElementById('az-card-stundenlohn'),\r\n            cardBruttolohn: document.getElementById('az-card-bruttolohn'),\r\n            cardVerdienst: document.getElementById('az-card-verdienst'),\r\n            cardLohndiff: document.getElementById('az-card-lohndiff')\r\n        };\r\n        \r\n        function formatTime(std, min) {\r\n            return String(std).padStart(2, '0') + ':' + String(min).padStart(2, '0');\r\n        }\r\n        \r\n        \/\/ FIX #10: Verbesserte Duration-Formatierung \u2014 kein \"-0 Std\"\r\n        function formatDuration(totalMin) {\r\n            var abs = Math.abs(totalMin);\r\n            var h = Math.floor(abs \/ 60);\r\n            var m = abs % 60;\r\n            var sign = totalMin < 0 ? '-' : '';\r\n            if (h === 0 && totalMin < 0) {\r\n                return sign + m + ' Min';\r\n            }\r\n            return sign + h + ' Std ' + m + ' Min';\r\n        }\r\n        \r\n        function formatDurationShort(totalMin) {\r\n            var abs = Math.abs(totalMin);\r\n            var h = Math.floor(abs \/ 60);\r\n            var m = abs % 60;\r\n            var sign = totalMin < 0 ? '-' : '';\r\n            return sign + String(h).padStart(2, '0') + ':' + String(m).padStart(2, '0');\r\n        }\r\n        \r\n        function formatCurrency(num) {\r\n            return new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(num);\r\n        }\r\n        \r\n        function getInt(el) { return parseInt(el.value, 10) || 0; }\r\n        function getFloat(el) { return parseFloat(el.value) || 0; }\r\n\r\n        \/\/ FIX #7: Input-Validierung per JS \u2014 Werte in gueltige Bereiche clampen\r\n        function clampInput(el, min, max) {\r\n            var val = parseInt(el.value, 10);\r\n            if (isNaN(val)) { el.value = min; return; }\r\n            if (val < min) el.value = min;\r\n            if (val > max) el.value = max;\r\n        }\r\n\r\n        \/\/ Validierung bei Blur auf allen Zeit-Inputs\r\n        [els.beginnStd, els.endeStd].forEach(function(el) {\r\n            el.addEventListener('blur', function() { clampInput(el, 0, 23); });\r\n        });\r\n        [els.beginnMin, els.endeMin, els.sollMin].forEach(function(el) {\r\n            el.addEventListener('blur', function() { clampInput(el, 0, 59); });\r\n        });\r\n        els.sollStd.addEventListener('blur', function() { clampInput(els.sollStd, 0, 24); });\r\n        \r\n        \/\/ Pause hinzufuegen\r\n        els.addPauseBtn.addEventListener('click', function() {\r\n            pauseCounter++;\r\n            var div = document.createElement('div');\r\n            div.className = 'pause-item';\r\n            div.dataset.pauseId = pauseCounter;\r\n            div.innerHTML = \r\n                '<label for=\"az-pause-stunde-' + pauseCounter + '\" class=\"pause-label\">Pause ' + pauseCounter + ' <span class=\"tooltip-trigger\" data-tooltip=\"Dauer der Pause in Stunden und Minuten.\">?<\/span><\/label>' +\r\n                '<div class=\"time-inputs\">' +\r\n                    '<div class=\"input-wrapper\"><input type=\"number\" id=\"az-pause-stunde-' + pauseCounter + '\" class=\"pause-stunde\" value=\"0\" min=\"0\" max=\"23\" step=\"1\"><span class=\"input-unit\">Std<\/span><\/div>' +\r\n                    '<span class=\"time-separator\">:<\/span>' +\r\n                    '<div class=\"input-wrapper\"><input type=\"number\" id=\"az-pause-minute-' + pauseCounter + '\" class=\"pause-minute\" value=\"15\" min=\"0\" max=\"59\" step=\"1\"><span class=\"input-unit\">Min<\/span><\/div>' +\r\n                '<\/div>' +\r\n                '<button type=\"button\" class=\"remove-pause-btn\" title=\"Pause entfernen\">\u00d7<\/button>';\r\n            els.pausenContainer.appendChild(div);\r\n            \/\/ FIX #7: Blur-Validierung auch auf neue Pausen-Inputs\r\n            var newStd = div.querySelector('.pause-stunde');\r\n            var newMin = div.querySelector('.pause-minute');\r\n            newStd.addEventListener('blur', function() { clampInput(newStd, 0, 23); });\r\n            newMin.addEventListener('blur', function() { clampInput(newMin, 0, 59); });\r\n            updatePauseLabels();\r\n        });\r\n        \r\n        \/\/ Pause entfernen\r\n        els.pausenContainer.addEventListener('click', function(e) {\r\n            if (e.target.classList.contains('remove-pause-btn')) {\r\n                var item = e.target.closest('.pause-item');\r\n                var allPauses = els.pausenContainer.querySelectorAll('.pause-item');\r\n                if (allPauses.length > 1) {\r\n                    item.remove();\r\n                    updatePauseLabels();\r\n                } else {\r\n                    item.querySelector('.pause-stunde').value = 0;\r\n                    item.querySelector('.pause-minute').value = 0;\r\n                }\r\n            }\r\n        });\r\n        \r\n        function updatePauseLabels() {\r\n            var items = els.pausenContainer.querySelectorAll('.pause-item');\r\n            items.forEach(function(item, i) {\r\n                var pauseNum = i + 1;\r\n                var label = item.querySelector('.pause-label');\r\n                var stundeInput = item.querySelector('.pause-stunde');\r\n                var minuteInput = item.querySelector('.pause-minute');\r\n                stundeInput.id = 'az-pause-stunde-' + pauseNum;\r\n                minuteInput.id = 'az-pause-minute-' + pauseNum;\r\n                label.setAttribute('for', 'az-pause-stunde-' + pauseNum);\r\n                label.innerHTML = 'Pause ' + pauseNum + ' <span class=\"tooltip-trigger\" data-tooltip=\"Dauer der Pause in Stunden und Minuten.\">?<\/span>';\r\n            });\r\n        }\r\n        \r\n        \/\/ Tabelle ein-\/ausblenden\r\n        els.tableToggle.addEventListener('click', function() {\r\n            tableVisible = !tableVisible;\r\n            els.tableWrapper.style.display = tableVisible ? 'block' : 'none';\r\n            els.tableToggle.textContent = tableVisible ? 'Detail\u00fcbersicht ausblenden' : 'Detail\u00fcbersicht anzeigen';\r\n        });\r\n        \r\n        \/\/ Reset\r\n        els.resetBtn.addEventListener('click', function() {\r\n            els.beginnStd.value = 8;\r\n            els.beginnMin.value = 0;\r\n            els.endeStd.value = 17;\r\n            els.endeMin.value = 0;\r\n            els.sollStd.value = 8;\r\n            els.sollMin.value = 0;\r\n            els.stundenlohn.value = '';\r\n            \r\n            var items = els.pausenContainer.querySelectorAll('.pause-item');\r\n            items.forEach(function(item, i) {\r\n                if (i === 0) {\r\n                    item.querySelector('.pause-stunde').value = 0;\r\n                    item.querySelector('.pause-minute').value = 30;\r\n                } else {\r\n                    item.remove();\r\n                }\r\n            });\r\n            pauseCounter = 1;\r\n            updatePauseLabels();\r\n            \r\n            els.resultsWrapper.style.display = 'none';\r\n            els.exportBtn.style.display = 'none';\r\n            lastResult = null;\r\n            tableVisible = true;\r\n            els.tableWrapper.style.display = 'block';\r\n            els.tableToggle.textContent = 'Detail\u00fcbersicht ausblenden';\r\n        });\r\n        \r\n        els.calcBtn.addEventListener('click', berechne);\r\n        \r\n        function berechne() {\r\n            \/\/ FIX #7: Alle Inputs vor Berechnung clampen\r\n            clampInput(els.beginnStd, 0, 23);\r\n            clampInput(els.beginnMin, 0, 59);\r\n            clampInput(els.endeStd, 0, 23);\r\n            clampInput(els.endeMin, 0, 59);\r\n            clampInput(els.sollStd, 0, 24);\r\n            clampInput(els.sollMin, 0, 59);\r\n            els.pausenContainer.querySelectorAll('.pause-item').forEach(function(item) {\r\n                clampInput(item.querySelector('.pause-stunde'), 0, 23);\r\n                clampInput(item.querySelector('.pause-minute'), 0, 59);\r\n            });\r\n\r\n            var beginnStd = getInt(els.beginnStd);\r\n            var beginnMin = getInt(els.beginnMin);\r\n            var endeStd = getInt(els.endeStd);\r\n            var endeMin = getInt(els.endeMin);\r\n            var sollStd = getInt(els.sollStd);\r\n            var sollMin = getInt(els.sollMin);\r\n            var stundenlohn = getFloat(els.stundenlohn);\r\n            \r\n            \/\/ Pausen sammeln\r\n            var pausen = [];\r\n            var pausenItems = els.pausenContainer.querySelectorAll('.pause-item');\r\n            pausenItems.forEach(function(item, idx) {\r\n                var pStd = parseInt(item.querySelector('.pause-stunde').value, 10) || 0;\r\n                var pMin = parseInt(item.querySelector('.pause-minute').value, 10) || 0;\r\n                var total = pStd * 60 + pMin;\r\n                if (total > 0) {\r\n                    pausen.push({ nr: idx + 1, std: pStd, min: pMin, total: total });\r\n                }\r\n            });\r\n            \r\n            var beginnMinuten = beginnStd * 60 + beginnMin;\r\n            var endeMinuten = endeStd * 60 + endeMin;\r\n            var sollMinuten = sollStd * 60 + sollMin;\r\n            \r\n            \/\/ FIX #2: Beginn = Ende \u2192 Fehler statt 24h\r\n            if (endeMinuten === beginnMinuten) {\r\n                alert('Fehler: Arbeitsbeginn und Arbeitsende sind identisch. Bitte korrigieren.');\r\n                return;\r\n            }\r\n\r\n            \/\/ Nachtschicht\r\n            if (endeMinuten < beginnMinuten) {\r\n                endeMinuten += 24 * 60;\r\n            }\r\n            \r\n            var bruttoMinuten = endeMinuten - beginnMinuten;\r\n\r\n            \/\/ FIX #2: Warnung bei unplausibel langer Arbeitszeit\r\n            var arbeitszeitWarnung = bruttoMinuten > 16 * 60;\r\n            \r\n            var pausenGesamt = 0;\r\n            pausen.forEach(function(p) { pausenGesamt += p.total; });\r\n            \r\n            var nettoMinuten = bruttoMinuten - pausenGesamt;\r\n            \r\n            if (nettoMinuten < 0) {\r\n                alert('Fehler: Die Pausenzeit (' + formatDuration(pausenGesamt) + ') ist gr\u00f6\u00dfer als die Bruttoarbeitszeit (' + formatDuration(bruttoMinuten) + ')!');\r\n                return;\r\n            }\r\n            \r\n            var differenzMinuten = nettoMinuten - sollMinuten;\r\n            \r\n            \/\/ Lohn\r\n            var bruttolohnSoll = 0;\r\n            var verdienstTatsaechlich = 0;\r\n            var lohnDifferenz = 0;\r\n            \r\n            if (stundenlohn > 0) {\r\n                if (sollMinuten > 0) bruttolohnSoll = stundenlohn * (sollMinuten \/ 60);\r\n                verdienstTatsaechlich = stundenlohn * (nettoMinuten \/ 60);\r\n                if (sollMinuten > 0) lohnDifferenz = verdienstTatsaechlich - bruttolohnSoll;\r\n            }\r\n            \r\n            \/\/ FIX #1: Gesetzliche Pause gegen BRUTTO-Arbeitszeit pruefen\r\n            var gesetzlichePause = 0;\r\n            if (bruttoMinuten > 9 * 60) {\r\n                gesetzlichePause = 45;\r\n            } else if (bruttoMinuten > 6 * 60) {\r\n                gesetzlichePause = 30;\r\n            }\r\n            var pausenWarnung = pausenGesamt < gesetzlichePause;\r\n            \r\n            \/\/ FIX #3+4: Timeline-Bloecke proportional mit Restverteilung\r\n            var abschnitte = [];\r\n            var currentTime = beginnMinuten;\r\n            \r\n            if (pausen.length > 0) {\r\n                \/\/ Arbeitszeit gleichmaessig auf Bloecke verteilen, aber mit korrekter Restverteilung\r\n                var anzahlArbeitsbloecke = pausen.length + 1;\r\n                var nettoProBlockBase = Math.floor(nettoMinuten \/ anzahlArbeitsbloecke);\r\n                var restMinuten = nettoMinuten - (nettoProBlockBase * anzahlArbeitsbloecke);\r\n                \r\n                pausen.forEach(function(p, idx) {\r\n                    \/\/ FIX #4: Restminuten auf die ersten Bloecke verteilen\r\n                    var blockDauer = nettoProBlockBase + (idx < restMinuten ? 1 : 0);\r\n                    abschnitte.push({ typ: 'Arbeitszeit', von: currentTime, bis: currentTime + blockDauer, dauer: blockDauer });\r\n                    currentTime += blockDauer;\r\n                    abschnitte.push({ typ: 'Pause ' + (idx + 1), von: currentTime, bis: currentTime + p.total, dauer: p.total });\r\n                    currentTime += p.total;\r\n                });\r\n                \r\n                \/\/ Letzter Arbeitsblock: restliche Zeit bis Ende\r\n                var letzterBlock = endeMinuten - currentTime;\r\n                if (letzterBlock > 0) {\r\n                    abschnitte.push({ typ: 'Arbeitszeit', von: currentTime, bis: endeMinuten, dauer: letzterBlock });\r\n                }\r\n            } else {\r\n                abschnitte.push({ typ: 'Arbeitszeit', von: beginnMinuten, bis: endeMinuten, dauer: bruttoMinuten });\r\n            }\r\n            \r\n            lastResult = {\r\n                beginnStd: beginnStd,\r\n                beginnMin: beginnMin,\r\n                endeStd: endeStd,\r\n                endeMin: endeMin,\r\n                beginnMinuten: beginnMinuten,\r\n                endeMinuten: endeMinuten,\r\n                bruttoMinuten: bruttoMinuten,\r\n                pausenGesamt: pausenGesamt,\r\n                nettoMinuten: nettoMinuten,\r\n                sollMinuten: sollMinuten,\r\n                differenzMinuten: differenzMinuten,\r\n                stundenlohn: stundenlohn,\r\n                bruttolohnSoll: bruttolohnSoll,\r\n                verdienstTatsaechlich: verdienstTatsaechlich,\r\n                lohnDifferenz: lohnDifferenz,\r\n                abschnitte: abschnitte,\r\n                pausenWarnung: pausenWarnung,\r\n                arbeitszeitWarnung: arbeitszeitWarnung,\r\n                gesetzlichePause: gesetzlichePause,\r\n                pausen: pausen\r\n            };\r\n\r\n            updateResults(lastResult);\r\n        }\r\n        \r\n        function updateResults(r) {\r\n            \/\/ Hauptergebnis\r\n            els.resNettoShort.textContent = formatDurationShort(r.nettoMinuten);\r\n            els.resNettoLong.textContent = formatDuration(r.nettoMinuten);\r\n            \r\n            \/\/ Details\r\n            els.resBeginn.textContent = formatTime(r.beginnStd, r.beginnMin) + ' Uhr';\r\n            els.resEnde.textContent = formatTime(r.endeStd, r.endeMin) + ' Uhr';\r\n            els.resBrutto.textContent = formatDuration(r.bruttoMinuten);\r\n\r\n            \/\/ FIX #5: Pausenzeit-Styling bedingt \u2014 warnung nur wenn gesetzlich zu wenig\r\n            els.resPausen.textContent = formatDuration(r.pausenGesamt);\r\n            if (r.pausenWarnung) {\r\n                els.resPausen.className = 'card-value warning';\r\n            } else {\r\n                els.resPausen.className = 'card-value';\r\n            }\r\n\r\n            els.resSoll.textContent = formatDuration(r.sollMinuten);\r\n            \r\n            \/\/ Differenz\r\n            if (r.differenzMinuten > 0) {\r\n                els.resDiff.textContent = '+' + formatDuration(r.differenzMinuten);\r\n                els.resDiff.className = 'card-value positive';\r\n            } else if (r.differenzMinuten < 0) {\r\n                els.resDiff.textContent = formatDuration(r.differenzMinuten);\r\n                els.resDiff.className = 'card-value negative';\r\n            } else {\r\n                els.resDiff.textContent = '\u00b10 Std 0 Min';\r\n                els.resDiff.className = 'card-value';\r\n            }\r\n            \r\n            \/\/ Lohn-Felder\r\n            if (r.stundenlohn > 0) {\r\n                els.cardStundenlohn.style.display = 'block';\r\n                els.cardVerdienst.style.display = 'block';\r\n                els.resStundenlohn.textContent = formatCurrency(r.stundenlohn);\r\n                els.resVerdienst.textContent = formatCurrency(r.verdienstTatsaechlich);\r\n                \r\n                if (r.differenzMinuten < 0) {\r\n                    els.resVerdienst.className = 'card-value warning';\r\n                } else if (r.differenzMinuten > 0) {\r\n                    els.resVerdienst.className = 'card-value positive';\r\n                } else {\r\n                    els.resVerdienst.className = 'card-value';\r\n                }\r\n                \r\n                if (r.sollMinuten > 0) {\r\n                    els.cardBruttolohn.style.display = 'block';\r\n                    els.cardLohndiff.style.display = 'block';\r\n                    els.resBruttolohn.textContent = formatCurrency(r.bruttolohnSoll);\r\n                    \r\n                    if (r.lohnDifferenz > 0) {\r\n                        els.resLohndiff.textContent = '+' + formatCurrency(r.lohnDifferenz);\r\n                        els.resLohndiff.className = 'card-value positive';\r\n                    } else if (r.lohnDifferenz < 0) {\r\n                        els.resLohndiff.textContent = formatCurrency(r.lohnDifferenz);\r\n                        els.resLohndiff.className = 'card-value negative';\r\n                    } else {\r\n                        els.resLohndiff.textContent = '\u00b10,00 \u20ac';\r\n                        els.resLohndiff.className = 'card-value';\r\n                    }\r\n                } else {\r\n                    els.cardBruttolohn.style.display = 'none';\r\n                    els.cardLohndiff.style.display = 'none';\r\n                }\r\n            } else {\r\n                els.cardStundenlohn.style.display = 'none';\r\n                els.cardBruttolohn.style.display = 'none';\r\n                els.cardVerdienst.style.display = 'none';\r\n                els.cardLohndiff.style.display = 'none';\r\n            }\r\n            \r\n            \/\/ Zusammenfassung\r\n            var summary = 'Du hast heute von <strong>' + formatTime(r.beginnStd, r.beginnMin) + ' Uhr<\/strong> ';\r\n            summary += 'bis <strong>' + formatTime(r.endeStd, r.endeMin) + ' Uhr<\/strong> gearbeitet. ';\r\n            summary += 'Nach Abzug von <strong>' + formatDuration(r.pausenGesamt) + '<\/strong> Pause ';\r\n            summary += 'betr\u00e4gt deine Nettoarbeitszeit <strong>' + formatDuration(r.nettoMinuten) + '<\/strong>. ';\r\n            \r\n            if (r.sollMinuten > 0) {\r\n                if (r.differenzMinuten > 0) {\r\n                    summary += 'Das sind <strong>' + formatDuration(r.differenzMinuten) + ' \u00dcberstunden<\/strong>.';\r\n                } else if (r.differenzMinuten < 0) {\r\n                    summary += 'Es fehlen noch <strong>' + formatDuration(Math.abs(r.differenzMinuten)) + '<\/strong> zur Sollzeit.';\r\n                } else {\r\n                    summary += 'Die Sollarbeitszeit wurde genau erreicht.';\r\n                }\r\n            }\r\n            \r\n            if (r.stundenlohn > 0) {\r\n                summary += '<br><br><strong>Verg\u00fctung:<\/strong> ';\r\n                summary += 'Bei einem Stundenlohn von <strong>' + formatCurrency(r.stundenlohn) + '<\/strong> ';\r\n                summary += 'betr\u00e4gt dein tats\u00e4chlicher Tagesverdienst <strong>' + formatCurrency(r.verdienstTatsaechlich) + '<\/strong>.';\r\n                \r\n                if (r.sollMinuten > 0 && r.lohnDifferenz !== 0) {\r\n                    summary += ' Das sind <strong>' + (r.lohnDifferenz > 0 ? '+' : '') + formatCurrency(r.lohnDifferenz) + '<\/strong> ';\r\n                    summary += 'im Vergleich zum Soll-Bruttolohn von ' + formatCurrency(r.bruttolohnSoll) + '.';\r\n                }\r\n            }\r\n            \r\n            var hasWarning = false;\r\n\r\n            if (r.pausenWarnung) {\r\n                hasWarning = true;\r\n                summary += '<br><br><strong>\u26a0\ufe0f Achtung:<\/strong> Nach dem Arbeitszeitgesetz w\u00e4ren bei einer Anwesenheitszeit von ' + formatDuration(r.bruttoMinuten) + ' mindestens ' + r.gesetzlichePause + ' Minuten Pause vorgeschrieben!';\r\n            }\r\n\r\n            \/\/ FIX #2: Warnung bei >16h\r\n            if (r.arbeitszeitWarnung) {\r\n                hasWarning = true;\r\n                summary += '<br><br><strong>\u26a0\ufe0f Hinweis:<\/strong> Die Bruttoarbeitszeit von ' + formatDuration(r.bruttoMinuten) + ' erscheint ungew\u00f6hnlich lang. Bitte pr\u00fcfe, ob Arbeitsbeginn und -ende korrekt eingegeben sind.';\r\n            }\r\n\r\n            els.resSummary.innerHTML = summary;\r\n            els.resSummary.className = hasWarning ? 'result-summary warning-result' : 'result-summary';\r\n            \r\n            \/\/ Timeline\r\n            els.timelineBar.innerHTML = '';\r\n            var totalDauer = r.endeMinuten - r.beginnMinuten;\r\n            \r\n            r.abschnitte.forEach(function(a) {\r\n                var seg = document.createElement('div');\r\n                seg.className = 'timeline-segment ' + (a.typ.includes('Pause') ? 'pause' : 'work');\r\n                var left = ((a.von - r.beginnMinuten) \/ totalDauer) * 100;\r\n                var width = (a.dauer \/ totalDauer) * 100;\r\n                seg.style.left = left + '%';\r\n                seg.style.width = width + '%';\r\n                if (width > 8) {\r\n                    seg.textContent = formatDurationShort(a.dauer);\r\n                }\r\n                els.timelineBar.appendChild(seg);\r\n            });\r\n            \r\n            els.timelineStart.textContent = formatTime(r.beginnStd, r.beginnMin);\r\n\r\n            \/\/ FIX #8: Nachtschicht-Label mit sauberer Modulo-Logik\r\n            var endeMinutenNormalisiert = r.endeMinuten % (24 * 60);\r\n            var endStd = Math.floor(endeMinutenNormalisiert \/ 60);\r\n            var endMin = endeMinutenNormalisiert % 60;\r\n            els.timelineEnd.textContent = formatTime(endStd, endMin);\r\n            \r\n            \/\/ Tabelle\r\n            var html = '';\r\n            r.abschnitte.forEach(function(a) {\r\n                var vonNorm = a.von % (24 * 60);\r\n                var bisNorm = a.bis % (24 * 60);\r\n                var vonStd = Math.floor(vonNorm \/ 60);\r\n                var vonMin = vonNorm % 60;\r\n                var bisStd = Math.floor(bisNorm \/ 60);\r\n                var bisMin = bisNorm % 60;\r\n                var rowClass = a.typ.includes('Pause') ? 'row-pause' : 'row-work';\r\n                html += '<tr class=\"' + rowClass + '\">';\r\n                html += '<td>' + a.typ + '<\/td>';\r\n                html += '<td>' + formatTime(vonStd, vonMin) + ' Uhr<\/td>';\r\n                html += '<td>' + formatTime(bisStd, bisMin) + ' Uhr<\/td>';\r\n                html += '<td>' + formatDuration(a.dauer) + '<\/td>';\r\n                html += '<\/tr>';\r\n            });\r\n            html += '<tr style=\"font-weight: 700; background-color: #f0f9ff;\">';\r\n            html += '<td colspan=\"3\">Nettoarbeitszeit<\/td>';\r\n            html += '<td>' + formatDuration(r.nettoMinuten) + '<\/td>';\r\n            html += '<\/tr>';\r\n            els.tableBody.innerHTML = html;\r\n            \r\n            els.resultsWrapper.style.display = 'block';\r\n            \/\/ FIX #9: Export-Button anzeigen\r\n            els.exportBtn.style.display = 'block';\r\n        }\r\n        \r\n        \/\/ FIX #9: CSV-Export\r\n        els.exportBtn.addEventListener('click', function() {\r\n            if (!lastResult) return;\r\n            var r = lastResult;\r\n            var rows = ['Zeitraum;Von;Bis;Dauer'];\r\n            r.abschnitte.forEach(function(a) {\r\n                var vonNorm = a.von % (24 * 60);\r\n                var bisNorm = a.bis % (24 * 60);\r\n                rows.push([\r\n                    a.typ,\r\n                    formatTime(Math.floor(vonNorm \/ 60), vonNorm % 60),\r\n                    formatTime(Math.floor(bisNorm \/ 60), bisNorm % 60),\r\n                    formatDuration(a.dauer)\r\n                ].join(';'));\r\n            });\r\n            rows.push('Nettoarbeitszeit;;;' + formatDuration(r.nettoMinuten));\r\n            if (r.sollMinuten > 0) {\r\n                rows.push('Sollarbeitszeit;;;' + formatDuration(r.sollMinuten));\r\n                rows.push('Differenz;;;' + (r.differenzMinuten >= 0 ? '+' : '') + formatDuration(r.differenzMinuten));\r\n            }\r\n            if (r.stundenlohn > 0) {\r\n                rows.push('');\r\n                rows.push('Stundenlohn;;;\"' + formatCurrency(r.stundenlohn) + '\"');\r\n                rows.push('Tagesverdienst;;;\"' + formatCurrency(r.verdienstTatsaechlich) + '\"');\r\n            }\r\n\r\n            var blob = new Blob(['\\uFEFF' + rows.join('\\n')], { type: 'text\/csv;charset=utf-8;' });\r\n            var link = document.createElement('a');\r\n            link.href = URL.createObjectURL(blob);\r\n            link.download = 'arbeitszeit.csv';\r\n            link.click();\r\n        });\r\n\r\n        \/\/ Permalink\r\n        els.permalinkBtn.addEventListener('click', function() {\r\n            var params = new URLSearchParams();\r\n            params.set('bs', els.beginnStd.value);\r\n            params.set('bm', els.beginnMin.value);\r\n            params.set('es', els.endeStd.value);\r\n            params.set('em', els.endeMin.value);\r\n            params.set('ss', els.sollStd.value);\r\n            params.set('sm', els.sollMin.value);\r\n            if (els.stundenlohn.value) params.set('sl', els.stundenlohn.value);\r\n            \r\n            \/\/ FIX #6: Nur Pausen mit Wert > 0 im Permalink speichern\r\n            var pausenArr = [];\r\n            els.pausenContainer.querySelectorAll('.pause-item').forEach(function(item) {\r\n                var pStd = parseInt(item.querySelector('.pause-stunde').value, 10) || 0;\r\n                var pMin = parseInt(item.querySelector('.pause-minute').value, 10) || 0;\r\n                if (pStd > 0 || pMin > 0) {\r\n                    pausenArr.push(pStd + '-' + pMin);\r\n                }\r\n            });\r\n            if (pausenArr.length > 0) params.set('p', pausenArr.join(','));\r\n            \r\n            var url = window.location.origin + window.location.pathname + '?' + params.toString();\r\n            \r\n            navigator.clipboard.writeText(url).then(function() {\r\n                var orig = els.permalinkBtn.textContent;\r\n                els.permalinkBtn.textContent = 'Kopiert!';\r\n                setTimeout(function() { els.permalinkBtn.textContent = orig; }, 2000);\r\n            }).catch(function() {\r\n                prompt('Link kopieren:', url);\r\n            });\r\n        });\r\n        \r\n        \/\/ URL-Parameter laden\r\n        function loadFromURL() {\r\n            var params = new URLSearchParams(window.location.search);\r\n            if (!params.has('bs')) return;\r\n            \r\n            if (params.has('bs')) els.beginnStd.value = params.get('bs');\r\n            if (params.has('bm')) els.beginnMin.value = params.get('bm');\r\n            if (params.has('es')) els.endeStd.value = params.get('es');\r\n            if (params.has('em')) els.endeMin.value = params.get('em');\r\n            if (params.has('ss')) els.sollStd.value = params.get('ss');\r\n            if (params.has('sm')) els.sollMin.value = params.get('sm');\r\n            if (params.has('sl')) els.stundenlohn.value = params.get('sl');\r\n            \r\n            if (params.has('p')) {\r\n                var pausenArr = params.get('p').split(',');\r\n                pausenArr.forEach(function(p, idx) {\r\n                    var parts = p.split('-');\r\n                    var pStd = parseInt(parts[0], 10) || 0;\r\n                    var pMin = parseInt(parts[1], 10) || 0;\r\n                    \r\n                    if (idx === 0) {\r\n                        var first = els.pausenContainer.querySelector('.pause-item');\r\n                        first.querySelector('.pause-stunde').value = pStd;\r\n                        first.querySelector('.pause-minute').value = pMin;\r\n                    } else {\r\n                        pauseCounter++;\r\n                        var div = document.createElement('div');\r\n                        div.className = 'pause-item';\r\n                        div.dataset.pauseId = pauseCounter;\r\n                        div.innerHTML = \r\n                            '<label for=\"az-pause-stunde-' + pauseCounter + '\" class=\"pause-label\">Pause ' + pauseCounter + ' <span class=\"tooltip-trigger\" data-tooltip=\"Dauer der Pause in Stunden und Minuten.\">?<\/span><\/label>' +\r\n                            '<div class=\"time-inputs\">' +\r\n                                '<div class=\"input-wrapper\"><input type=\"number\" id=\"az-pause-stunde-' + pauseCounter + '\" class=\"pause-stunde\" value=\"' + pStd + '\" min=\"0\" max=\"23\" step=\"1\"><span class=\"input-unit\">Std<\/span><\/div>' +\r\n                                '<span class=\"time-separator\">:<\/span>' +\r\n                                '<div class=\"input-wrapper\"><input type=\"number\" id=\"az-pause-minute-' + pauseCounter + '\" class=\"pause-minute\" value=\"' + pMin + '\" min=\"0\" max=\"59\" step=\"1\"><span class=\"input-unit\">Min<\/span><\/div>' +\r\n                            '<\/div>' +\r\n                            '<button type=\"button\" class=\"remove-pause-btn\" title=\"Pause entfernen\">\u00d7<\/button>';\r\n                        els.pausenContainer.appendChild(div);\r\n                    }\r\n                });\r\n                updatePauseLabels();\r\n            }\r\n            \r\n            setTimeout(berechne, 100);\r\n        }\r\n        \r\n        loadFromURL();\r\n    }\r\n})();\r\n<\/script>    <\/div>\n\n\n\n<div class=\"container container--narrow\" >\n    <div class=\"text\">\n        <div class=\"text__inner flow-content\">\n                            \n<h2>So nutzt du den Arbeitszeitrechner<\/h2>\n<p>Der Rechner braucht drei Angaben:<\/p>\n<p><strong>Arbeitsbeginn:<\/strong> Wann hast du angefangen? Trag die Uhrzeit ein, zum Beispiel 8:00.<\/p>\n<p><strong>Arbeitsende:<\/strong> Wann hast du aufgeh\u00f6rt? Zum Beispiel 17:15.<\/p>\n<p><strong>Pausenzeit:<\/strong> Wie lange hast du insgesamt pausiert? Bei einer klassischen Mittagspause sind das 30 oder 45 Minuten. Falls du mehrere kurze Pausen gemacht hast, trag die Gesamtsumme ein.<\/p>\n<p>Das Ergebnis zeigt deine <strong>Nettoarbeitszeit<\/strong>: die Stunden und Minuten, die du tats\u00e4chlich gearbeitet hast. Im Beispiel oben: 17:15 minus 8:00 = 9 Stunden 15 Minuten Anwesenheit, abz\u00fcglich 45 Minuten Pause = 8 Stunden 30 Minuten Nettoarbeitszeit.<\/p>\n<div class=\"highlightbox box box--small-padding box--tiny-margin-y\" style=\"--color-background:#fefcef;\"><strong class=\"headline headline--h3 headline--small-margin\">\ud83d\udca1 Gut zu wissen<\/strong><div class=\"box__content\"><p><strong>Tipp:<\/strong> Nutze den Rechner t\u00e4glich und notiere die Ergebnisse. So hast du am Monatsende einen sauberen \u00dcberblick \u00fcber deine geleisteten Stunden, falls dein Arbeitgeber keine elektronische Zeiterfassung anbietet.<\/p><\/div><\/div>\n<div style=\"background-color: #fffdf2; border: 1px solid #f0ead2; border-radius: 12px; padding: 25px; margin-bottom: 20px; font-family: sans-serif; color: #333; line-height: 1.6;\">\r\n    \r\n    <div style=\"margin-bottom: 20px;\">\r\n        <h3 style=\"margin: 0; font-size: 18px; font-weight: bold; color: #000; text-transform: none;\">Weitere Finanzrechner<\/h3>\r\n    <\/div>\r\n\r\n    <div style=\"display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 15px 40px;\">\r\n        \r\n        <div style=\"display: flex; flex-direction: column; gap: 8px;\">\r\n            <a href=\"https:\/\/www.finanzen.net\/ratgeber\/rechner-vergleiche\/brutto-netto-rechner\/\" target=\"_blank\" rel=\"noopener\" style=\"color: #1a74fc; text-decoration: none; font-size: 17px; font-weight: 500;\">\u203a Brutto Netto Rechner<\/a>\r\n            <a href=\"https:\/\/www.finanzen.net\/ratgeber\/rechner-vergleiche\/prozentrechner\/\" target=\"_blank\" rel=\"noopener\" style=\"color: #1a74fc; text-decoration: none; font-size: 17px; font-weight: 500;\">\u203a Prozentrechner<\/a>\r\n            <a href=\"https:\/\/www.finanzen.net\/ratgeber\/rechner-vergleiche\/etf-rechner\/\" target=\"_blank\" rel=\"noopener\" style=\"color: #1a74fc; text-decoration: none; font-size: 17px; font-weight: 500;\">\u203a ETF-Rechner<\/a>\r\n            <a href=\"https:\/\/www.finanzen.net\/ratgeber\/rechner-vergleiche\/entnahmerechner\/\" target=\"_blank\" rel=\"noopener\" style=\"color: #1a74fc; text-decoration: none; font-size: 17px; font-weight: 500;\">\u203a Entnahmerechner<\/a>\r\n            <a href=\"https:\/\/www.finanzen.net\/ratgeber\/zinseszinsrechner\/\" target=\"_blank\" rel=\"noopener\" style=\"color: #1a74fc; text-decoration: none; font-size: 17px; font-weight: 500;\">\u203a Zinseszinsrechner<\/a>\r\n        <\/div>\r\n\r\n        <div style=\"display: flex; flex-direction: column; gap: 8px;\">\r\n            <a href=\"https:\/\/www.finanzen.net\/ratgeber\/rechner-vergleiche\/renditerechner\/\" target=\"_blank\" rel=\"noopener\" style=\"color: #1a74fc; text-decoration: none; font-size: 17px; font-weight: 500;\">\u203a Renditerechner<\/a>\r\n            <a href=\"https:\/\/www.finanzen.net\/ratgeber\/rechner-vergleiche\/kreditrechner\/\" target=\"_blank\" rel=\"noopener\" style=\"color: #1a74fc; text-decoration: none; font-size: 17px; font-weight: 500;\">\u203a Kreditrechner<\/a>\r\n            <a href=\"https:\/\/www.finanzen.net\/ratgeber\/rechner-vergleiche\/arbeitszeitrechner\/\" target=\"_blank\" rel=\"noopener\" style=\"color: #1a74fc; text-decoration: none; font-size: 17px; font-weight: 500;\">\u203a Arbeitszeitrechner<\/a>\r\n            <a href=\"https:\/\/www.finanzen.net\/ratgeber\/rechner-vergleiche\/iban-rechner\/\" target=\"_blank\" rel=\"noopener\" style=\"color: #1a74fc; text-decoration: none; font-size: 17px; font-weight: 500;\">\u203a IBAN-Rechner<\/a>\r\n        <\/div>\r\n        \r\n    <\/div>\r\n<\/div>\n<h2>Was z\u00e4hlt als Arbeitszeit?<\/h2>\n<p>Arbeitszeit ist die Zeit vom Beginn bis zum Ende deiner t\u00e4glichen Arbeit, ohne Ruhepausen. So definiert es das Arbeitszeitgesetz. In der Praxis ist die Abgrenzung nicht immer eindeutig:<\/p>\n<p><strong>Z\u00e4hlt als Arbeitszeit:<\/strong> Dienstreisen und Fahrten zwischen Einsatzorten, Umkleidezeiten bei vorgeschriebener Schutzkleidung, Bereitschaftsdienst am Arbeitsplatz, Arbeit w\u00e4hrend Rufbereitschaft.<\/p>\n<p><strong>Z\u00e4hlt nicht als Arbeitszeit:<\/strong> Der t\u00e4gliche Weg zwischen Wohnung und Arbeitsst\u00e4tte (Pendeln), Ruhepausen, reine Rufbereitschaft ohne Einsatz (gilt als Ruhezeit).<\/p>\n<p><strong>Kommt darauf an:<\/strong> Umkleidezeiten bei repr\u00e4sentativer Dienstkleidung (entscheidend ist, ob du dich im Betrieb umziehen musst), Reisezeit bei langen Zug- oder Flugreisen, Erreichbarkeit per E-Mail nach Feierabend.<\/p>\n<p>Falls du unsicher bist, ob bestimmte Zeiten als Arbeitszeit gelten, pr\u00fcfe deinen Arbeitsvertrag oder frag beim Betriebsrat nach.<\/p>\n<h2>Gesetzliche Regeln, die du kennen solltest<\/h2>\n<p>Das Arbeitszeitgesetz setzt Grenzen, die f\u00fcr fast alle Arbeitnehmer gelten. Drei Regeln sind f\u00fcr den Alltag besonders relevant:<\/p>\n<h3>H\u00f6chstarbeitszeit<\/h3>\n<p>Die Grundregel: maximal 8 Stunden pro Werktag. Da das Gesetz von einer Sechstagewoche ausgeht, ergibt sich eine Obergrenze von 48 Stunden pro Woche. Vor\u00fcbergehend sind bis zu 10 Stunden pro Tag erlaubt, wenn innerhalb von 6 Monaten ein Ausgleich auf durchschnittlich 8 Stunden erfolgt.<\/p>\n<p>Bei einer F\u00fcnftagewoche bedeutet das: maximal 40 Stunden im Durchschnitt, vor\u00fcbergehend bis zu 50 Stunden.<\/p>\n<h3>Pausenregeln<\/h3>\n<p>Pausen sind Pflicht und d\u00fcrfen nicht an den Anfang oder das Ende des Arbeitstags gelegt werden. Die Mindestpausen richten sich nach der Arbeitszeit:<\/p>\n<div class=\"sc-table table-container table-container--small-margin \"><table class=\"table table--aligned-left\" style=\"min-width:880px\"><thead><tr><th>Arbeitszeit<\/th><th>Mindestpause<\/th><th>Aufteilung m\u00f6glich<\/th><\/tr><\/thead><tbody><tr><td>Bis 6 Stunden<\/td><td>Keine Pflicht<\/td><td>&#8211;<\/td><\/tr><tr><td>Mehr als 6 bis 9 Stunden<\/td><td>30 Minuten<\/td><td>2 \u00d7 15 Minuten<\/td><\/tr><tr><td>Mehr als 9 Stunden<\/td><td>45 Minuten<\/td><td>3 \u00d7 15 Minuten<\/td><\/tr><\/thead><\/tbody><\/table><\/div>\n<p>Pausen z\u00e4hlen nicht zur Arbeitszeit und werden in der Regel nicht verg\u00fctet. Du darfst nicht auf Pausen verzichten, auch wenn du dadurch fr\u00fcher gehen k\u00f6nntest. Verst\u00f6\u00dfe k\u00f6nnen den Arbeitgeber bis zu 30.000 Euro Bu\u00dfgeld kosten.<\/p>\n<h3>Ruhezeit zwischen zwei Arbeitstagen<\/h3>\n<p>Zwischen Feierabend und dem n\u00e4chsten Arbeitsbeginn m\u00fcssen mindestens 11 Stunden liegen. In bestimmten Branchen (Krankenh\u00e4user, Gastronomie, Landwirtschaft) kann die Ruhezeit auf 10 Stunden verk\u00fcrzt werden, wenn innerhalb von 4 Wochen ein Ausgleich durch 12 Stunden Ruhezeit erfolgt.<\/p>\n<p>Pr\u00fcfe mit dem Rechner, ob deine Ruhezeit eingehalten wird: Wenn du um 20:00 Feierabend machst, darfst du fr\u00fchestens um 7:00 am n\u00e4chsten Tag wieder anfangen.<\/p>\n<div class=\"highlightbox box box--small-padding box--tiny-margin-y\" style=\"--color-background:#fff4ef;\"><strong class=\"headline headline--h3 headline--small-margin\">\u26a0\ufe0f Wichtig<\/strong><div class=\"box__content\"><p><strong>Arbeitszeiterfassung ist Pflicht.<\/strong> Seit einem Urteil des Bundesarbeitsgerichts von 2022 m\u00fcssen Arbeitgeber Beginn, Ende und Dauer der t\u00e4glichen Arbeitszeit aufzeichnen. Die konkrete Form (Stundenzettel, Excel, App) ist noch nicht gesetzlich festgelegt. Falls dein Arbeitgeber keine Erfassung anbietet, dokumentiere deine Zeiten selbst.<\/p><\/div><\/div>\n<h2>\u00dcberstunden: Wann du Anspruch auf Ausgleich hast<\/h2>\n<p>\u00dcberstunden entstehen, wenn du l\u00e4nger arbeitest als vertraglich vereinbart. Aber nur, wenn dein Arbeitgeber sie anordnet, genehmigt oder zumindest duldet. Freiwillig l\u00e4nger bleiben, ohne dass der Chef es wei\u00df, begr\u00fcndet keinen Anspruch.<\/p>\n<p>Der Ausgleich erfolgt je nach Arbeitsvertrag oder Tarifvertrag entweder durch Verg\u00fctung (Auszahlung der Mehrstunden, teils mit Zuschlag) oder durch Freizeitausgleich (eine \u00dcberstunde = eine Stunde frei).<\/p>\n<div class=\"sc-table table-container table-container--small-margin \"><table class=\"table table--aligned-left\" style=\"min-width:880px\"><thead><tr><th>Ausgleichsform<\/th><th>Vorteil f\u00fcr dich<\/th><th>Vorteil f\u00fcr den Arbeitgeber<\/th><\/tr><\/thead><tbody><tr><td>Verg\u00fctung<\/td><td>H\u00f6heres Einkommen<\/td><td>Keine Personalplanung n\u00f6tig<\/td><\/tr><tr><td>Freizeitausgleich<\/td><td>Mehr Erholung<\/td><td>Geringere Lohnkosten<\/td><\/tr><\/thead><\/tbody><\/table><\/div>\n<p>Dokumentiere \u00dcberstunden sorgf\u00e4ltig. Ohne Nachweis wird es sehr schwer, Anspr\u00fcche durchzusetzen. Der Arbeitszeitrechner hilft dir dabei: Berechne deine t\u00e4gliche Nettoarbeitszeit und vergleiche sie mit deiner Sollarbeitszeit laut Vertrag. Die Differenz sind deine \u00dcberstunden.<\/p>\n<div class=\"highlightbox box box--small-padding box--tiny-margin-y\" style=\"--color-background:#fff4ef;\"><strong class=\"headline headline--h3 headline--small-margin\">\u26a0\ufe0f Wichtig<\/strong><div class=\"box__content\"><p><strong>Vorsicht bei Abgeltungsklauseln:<\/strong> Formulierungen wie &#8222;Alle \u00dcberstunden sind mit dem Gehalt abgegolten&#8220; sind in den meisten F\u00e4llen unwirksam. Zul\u00e4ssig sind nur Klauseln, die eine konkrete Stundenzahl nennen, zum Beispiel &#8222;Bis zu 3 \u00dcberstunden pro Woche sind abgegolten.&#8220; Als angemessen gelten bis zu 10 Prozent der vertraglichen Arbeitszeit.<\/p><\/div><\/div>\n<h2>Dezimalstunden: So rechnest du um<\/h2>\n<p>Viele Arbeitgeber und Lohnabrechnungsprogramme arbeiten mit Dezimalstunden statt mit Stunden und Minuten. Die Umrechnung ist einfach: Teile die Minuten durch 60.<\/p>\n<p><div class=\"sc-table table-container table-container--small-margin \"><table class=\"table table--aligned-left\" style=\"min-width:880px\"><thead><tr><th>Stunden : Minuten<\/th><th>Dezimalstunden<\/th><\/tr><\/thead><tbody><tr><td>7:30<\/td><td>7,50<\/td><\/tr><tr><td>7:45<\/td><td>7,75<\/td><\/tr><tr><td>8:00<\/td><td>8,00<\/td><\/tr><tr><td>8:15<\/td><td>8,25<\/td><\/tr><tr><td>8:30<\/td><td>8,50<\/td><\/tr><tr><td>8:45<\/td><td>8,75<\/td><\/tr><\/thead><\/tbody><\/table><\/div><br \/>\nDie Formel: Dezimalstunden = Stunden + (Minuten \u00f7 60). Beispiel: 8 Stunden 20 Minuten = 8 + (20 \u00f7 60) = 8,33 Dezimalstunden.<\/p>\n<p>Umgekehrt: Dezimalstunden \u00d7 60 = Minuten des Nachkommaanteils. Beispiel: 7,75 Stunden \u2192 0,75 \u00d7 60 = 45 Minuten \u2192 also 7 Stunden 45 Minuten.<\/p>\n<h2>H\u00e4ufige Fragen zur Arbeitszeit<\/h2>\n<h3>Wie viele Stunden pro Monat sind Vollzeit?<\/h3>\n<p>Bei einer 40-Stunden-Woche arbeitest du durchschnittlich 173,3 Stunden pro Monat. Die Berechnung: 40 Stunden \u00d7 52 Wochen \u00f7 12 Monate. Bei 38 Stunden pro Woche sind es 164,7 Stunden, bei 35 Stunden 151,7 Stunden.<\/p>\n<h3>Wie lange darf ich maximal pro Tag arbeiten?<\/h3>\n<p>Die gesetzliche Obergrenze liegt bei 8 Stunden pro Werktag. Vor\u00fcbergehend sind 10 Stunden erlaubt, wenn innerhalb von 6 Monaten ein Ausgleich auf durchschnittlich 8 Stunden erfolgt. Bei einer F\u00fcnftagewoche bedeutet das: maximal 40 Stunden im Schnitt, vor\u00fcbergehend bis zu 50.<\/p>\n<h3>Wie viel Pause steht mir zu?<\/h3>\n<p>Bei mehr als 6 Stunden Arbeitszeit: mindestens 30 Minuten. Bei mehr als 9 Stunden: mindestens 45 Minuten. Pausen k\u00f6nnen in Abschnitte von mindestens 15 Minuten aufgeteilt werden. Bei bis zu 6 Stunden Arbeitszeit gibt es keine Pausenpflicht.<\/p>\n<h3>Wie viel Ruhezeit muss zwischen zwei Arbeitstagen liegen?<\/h3>\n<p>Mindestens 11 Stunden ununterbrochen. In bestimmten Branchen (Krankenhaus, Gastronomie) kann die Ruhezeit auf 10 Stunden verk\u00fcrzt werden, wenn innerhalb von 4 Wochen ein Ausgleich durch 12 Stunden erfolgt.<\/p>\n<h3>Z\u00e4hlt der Weg zur Arbeit als Arbeitszeit?<\/h3>\n<p>Nein. Der Pendelweg zwischen Wohnung und Arbeitsst\u00e4tte ist Privatangelegenheit und z\u00e4hlt nicht als Arbeitszeit. Ausnahmen gelten bei Dienstreisen, bei Fahrten zwischen verschiedenen Einsatzorten (z.B. Au\u00dfendienst) und wenn du keinen festen Arbeitsort hast.<\/p>\n<h3>M\u00fcssen \u00dcberstunden verg\u00fctet werden?<\/h3>\n<p>Ja, sofern der Arbeitgeber sie angeordnet oder geduldet hat. Der Ausgleich erfolgt durch Verg\u00fctung oder Freizeitausgleich, je nach Arbeitsvertrag oder Tarifvertrag. Pauschale Abgeltungsklauseln (&#8222;\u00dcberstunden sind mit dem Gehalt abgegolten&#8220;) sind ohne konkrete Stundenangabe unwirksam.<\/p>\n<h3>Wie rechne ich Arbeitszeit in Dezimalstunden um?<\/h3>\n<p>Teile die Minuten durch 60 und addiere sie zu den Stunden. Beispiel: 1 Stunde 30 Minuten = 1 + (30 \u00f7 60) = 1,50 Dezimalstunden. Umgekehrt: 1,75 Dezimalstunden = 1 Stunde + (0,75 \u00d7 60 Minuten) = 1 Stunde 45 Minuten.<\/p>\n<h3>Wie viele Tage darf ich hintereinander arbeiten?<\/h3>\n<p>Maximal 6 Werktage. Das Gesetz sieht nach 6 Arbeitstagen einen freien Sonntag vor. Ausnahmen gelten in Branchen wie Pflege, Gastronomie oder Notdiensten, dort muss ein Ersatzruhetag innerhalb von 2 Wochen gew\u00e4hrt werden.<\/p>\n<h3>Ist die Arbeitszeiterfassung Pflicht?<\/h3>\n<p>Ja. Seit einem Urteil des Bundesarbeitsgerichts von 2022 m\u00fcssen Arbeitgeber Beginn, Ende und Dauer der t\u00e4glichen Arbeitszeit aufzeichnen. Die konkrete Form (Stundenzettel, Excel, Software) ist noch nicht gesetzlich festgelegt. Die Pflicht gilt f\u00fcr alle Unternehmen, unabh\u00e4ngig von der Gr\u00f6\u00dfe.<\/p>\n<h3>Muss ich nach Feierabend E-Mails lesen?<\/h3>\n<p>Nein. Nach Feierabend beginnt die gesetzliche Ruhezeit von mindestens 11 Stunden. W\u00e4hrend dieser Zeit besteht keine Pflicht, erreichbar zu sein. Ausnahme: vertraglich vereinbarte Rufbereitschaft, die separat verg\u00fctet werden muss.<\/p>\n<h3>Z\u00e4hlt Umziehen als Arbeitszeit?<\/h3>\n<p>Wenn du vorgeschriebene Schutz- oder Hygienekleidung tragen musst und dich im Betrieb umziehen musst, z\u00e4hlt die Umkleidezeit als Arbeitszeit. Bei repr\u00e4sentativer Dienstkleidung, die du auch zu Hause anziehen kannst, in der Regel nicht. Im Zweifelsfall regeln Arbeitsvertrag oder Betriebsvereinbarung die Details.<\/p>\n                    <\/div>\n    <\/div>\n<\/div>\n\n\n<div class=\"container container--narrow\" >\n    <div class=\"disclaimer flow-content\">\n                    <small>\n                <p style=\"font-size: 11pt;\">Disclaimer: Die in diesem Artikel enthaltenen Inhalte dienen ausschlie\u00dflich allgemeinen Informations-, Bildungs- und Marketingzwecken ohne Gew\u00e4hr auf Vollst\u00e4ndigkeit, Richtigkeit und Aktualit\u00e4t. Die Inhalte stellen keine Anlageberatung, Anlagestrategieempfehlung oder Aufforderung zum Kauf oder Verkauf von Wertpapieren oder sonstigen Finanzinstrumenten dar. Die Informationen ber\u00fccksichtigen nicht die individuellen Anlageziele und finanzielle Situation des Lesers. Jede Anlageentscheidung sollte eigenverantwortlich getroffen und sorgf\u00e4ltig gepr\u00fcft werden. Vor einer Anlageentscheidung sollte der Rat eines Anlage- und Steuerberaters eingeholt werden. Der Handel mit Wertpapieren oder sonstigen Finanzinstrumenten ist mit hohen Risiken verbunden, bis hin zum Totalverlust des eingesetzten Kapitals. Die in der Vergangenheit erzielte Performance ist kein Indikator f\u00fcr zuk\u00fcnftige Wertentwicklungen. Aussagen \u00fcber zuk\u00fcnftige wirtschaftliche Entwicklungen basieren grunds\u00e4tzlich auf Annahmen und Einsch\u00e4tzungen, die sich im Zeitablauf als nicht zutreffend erweisen k\u00f6nnen. Wir \u00fcbernehmen keine Haftung f\u00fcr Verluste, die durch die Umsetzung der in diesem Artikel genannten Informationen entstehen.<\/p>\n<p style=\"font-size: 11pt;\"><sup>1<\/sup>Hinweis zu ZERO: <a href=\"https:\/\/www.finanzen.net\/zero\/?utm_source=finnet-ratgeber&amp;utm_medium=web&amp;utm_term=fnet_017m&amp;utm_campaign=content&amp;utm_content=[current_slug]\" target=\"_blank\" rel=\"noopener\">finanzen.net zero<\/a> ist ein Angebot der <a href=\"https:\/\/www.finanzen.net\/zero\/impressum\/?utm_source=finnet-ratgeber&amp;utm_medium=web&amp;utm_term=fnet_017m&amp;utm_campaign=content&amp;utm_content=[current_slug]\" target=\"_blank\" rel=\"noopener\">finanzen.net zero GmbH<\/a>, einer Tochter der <a href=\"https:\/\/www.finanzen.net\/impressum\">finanzen.net GmbH<\/a>.<\/p>\n<p style=\"font-size: 11pt;\"><sup>*<\/sup>Hinweis zu Affiliate-Links: Unsere Ratgeber-Artikel sind objektiv und unabh\u00e4ngig erstellt, wobei mit Sternchen gekennzeichnete Links zur Finanzierung der kostenlosen Inhalte dienen. Die Verg\u00fctung aus diesen Links hat keinen Einfluss auf unsere Inhalte.<\/p>\n            <\/small>\n                    <\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Von wann bis wann hast du gearbeitet, und wie viel davon war Pause? Unser Arbeitszeitrechner berechnet deine Nettoarbeitszeit auf die Minute genau. Trag Arbeitsbeginn, Arbeitsende und Pausenzeiten ein und du siehst sofort, wie viele Stunden du tats\u00e4chlich gearbeitet hast.<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1194],"tags":[1462,1454,1460],"class_list":["post-32702","post","type-post","status-publish","format-standard","hentry","category-rechner-vergleiche","tag-daily","tag-feed","tag-finanzrechner"],"acf":[],"yoast_head":"<title>Arbeitszeitrechner: Berechne deine t\u00e4gliche Arbeitszeit<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.finanzen.net\/ratgeber\/rechner-vergleiche\/arbeitszeitrechner\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Arbeitszeitrechner: Berechne deine t\u00e4gliche Arbeitszeit\" \/>\n<meta property=\"og:description\" content=\"Von wann bis wann hast du gearbeitet, und wie viel davon war Pause? Unser Arbeitszeitrechner berechnet deine Nettoarbeitszeit auf die Minute genau. Trag Arbeitsbeginn, Arbeitsende und Pausenzeiten ein und du siehst sofort, wie viele Stunden du tats\u00e4chlich gearbeitet hast.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.finanzen.net\/ratgeber\/rechner-vergleiche\/arbeitszeitrechner\/\" \/>\n<meta property=\"og:site_name\" content=\"Finanzen.net Ratgeber: Finanzwissen, das dich weiterbringt\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-18T11:05:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-18T11:06:27+00:00\" \/>\n<meta name=\"author\" content=\"Roland Kuse\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Geschrieben von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Roland Kuse\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"9\u00a0Minuten\" \/>","yoast_head_json":{"title":"Arbeitszeitrechner: Berechne deine t\u00e4gliche Arbeitszeit","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.finanzen.net\/ratgeber\/rechner-vergleiche\/arbeitszeitrechner\/","og_locale":"de_DE","og_type":"article","og_title":"Arbeitszeitrechner: Berechne deine t\u00e4gliche Arbeitszeit","og_description":"Von wann bis wann hast du gearbeitet, und wie viel davon war Pause? Unser Arbeitszeitrechner berechnet deine Nettoarbeitszeit auf die Minute genau. Trag Arbeitsbeginn, Arbeitsende und Pausenzeiten ein und du siehst sofort, wie viele Stunden du tats\u00e4chlich gearbeitet hast.","og_url":"https:\/\/www.finanzen.net\/ratgeber\/rechner-vergleiche\/arbeitszeitrechner\/","og_site_name":"Finanzen.net Ratgeber: Finanzwissen, das dich weiterbringt","article_published_time":"2026-04-18T11:05:29+00:00","article_modified_time":"2026-04-18T11:06:27+00:00","author":"Roland Kuse","twitter_card":"summary_large_image","twitter_misc":{"Geschrieben von":"Roland Kuse","Gesch\u00e4tzte Lesezeit":"9\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.finanzen.net\/ratgeber\/rechner-vergleiche\/arbeitszeitrechner\/#article","isPartOf":{"@id":"https:\/\/www.finanzen.net\/ratgeber\/rechner-vergleiche\/arbeitszeitrechner\/"},"author":{"name":"Roland Kuse","@id":"https:\/\/www.finanzen.net\/ratgeber\/#\/schema\/person\/751e702863ee767bd02fc5016b3d10e6"},"headline":"Arbeitszeitrechner","datePublished":"2026-04-18T11:05:29+00:00","dateModified":"2026-04-18T11:06:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.finanzen.net\/ratgeber\/rechner-vergleiche\/arbeitszeitrechner\/"},"wordCount":1454,"keywords":["Daily","feed","Finanzrechner"],"articleSection":["Rechner &amp; Vergleiche"],"inLanguage":"de"},{"@type":["WebPage","ItemPage"],"@id":"https:\/\/www.finanzen.net\/ratgeber\/rechner-vergleiche\/arbeitszeitrechner\/","url":"https:\/\/www.finanzen.net\/ratgeber\/rechner-vergleiche\/arbeitszeitrechner\/","name":"Arbeitszeitrechner: Berechne deine t\u00e4gliche Arbeitszeit","isPartOf":{"@id":"https:\/\/www.finanzen.net\/ratgeber\/#website"},"datePublished":"2026-04-18T11:05:29+00:00","dateModified":"2026-04-18T11:06:27+00:00","author":{"@id":"https:\/\/www.finanzen.net\/ratgeber\/#\/schema\/person\/751e702863ee767bd02fc5016b3d10e6"},"breadcrumb":{"@id":"https:\/\/www.finanzen.net\/ratgeber\/rechner-vergleiche\/arbeitszeitrechner\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.finanzen.net\/ratgeber\/rechner-vergleiche\/arbeitszeitrechner\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.finanzen.net\/ratgeber\/rechner-vergleiche\/arbeitszeitrechner\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/www.finanzen.net\/ratgeber\/"},{"@type":"ListItem","position":2,"name":"Rechner &amp; Vergleiche","item":"https:\/\/www.finanzen.net\/ratgeber\/.\/rechner-vergleiche\/"},{"@type":"ListItem","position":3,"name":"Arbeitszeitrechner"}]},{"@type":"WebSite","@id":"https:\/\/www.finanzen.net\/ratgeber\/#website","url":"https:\/\/www.finanzen.net\/ratgeber\/","name":"Finanzen.net Ratgeber - Die Ganze Welt der Finanzen","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.finanzen.net\/ratgeber\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/www.finanzen.net\/ratgeber\/#\/schema\/person\/751e702863ee767bd02fc5016b3d10e6","name":"Roland Kuse","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.finanzen.net\/ratgeber\/wp-content\/uploads\/2025\/10\/Roland_Kuse-1-150x150.jpg","url":"https:\/\/www.finanzen.net\/ratgeber\/wp-content\/uploads\/2025\/10\/Roland_Kuse-1-150x150.jpg","contentUrl":"https:\/\/www.finanzen.net\/ratgeber\/wp-content\/uploads\/2025\/10\/Roland_Kuse-1-150x150.jpg","caption":"Roland Kuse"},"description":"Roland Kuse leitet den Finanzratgeber gemeinsam mit Volker Altvater. Mit \u00fcber 25 Jahren Erfahrung im digitalen Publishing verantwortet der Experte die inhaltliche Strategie und redaktionelle Qualit\u00e4t. Zudem treibt er die Entwicklung interaktiver Formate voran \u2013 vom Altersvorsorgedepot-Rechner bis hin zu anschaulichen Infografiken. Sein Ziel ist es, Finanzen verst\u00e4ndlich, fundiert und verl\u00e4sslich aufzubereiten.","sameAs":["https:\/\/www.linkedin.com\/in\/roland-kuse-959574103\/"],"url":"https:\/\/www.finanzen.net\/ratgeber\/author\/roland-kruse\/"}]}},"_links":{"self":[{"href":"https:\/\/www.finanzen.net\/ratgeber\/wp-json\/wp\/v2\/posts\/32702","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.finanzen.net\/ratgeber\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.finanzen.net\/ratgeber\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.finanzen.net\/ratgeber\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.finanzen.net\/ratgeber\/wp-json\/wp\/v2\/comments?post=32702"}],"version-history":[{"count":11,"href":"https:\/\/www.finanzen.net\/ratgeber\/wp-json\/wp\/v2\/posts\/32702\/revisions"}],"predecessor-version":[{"id":37733,"href":"https:\/\/www.finanzen.net\/ratgeber\/wp-json\/wp\/v2\/posts\/32702\/revisions\/37733"}],"wp:attachment":[{"href":"https:\/\/www.finanzen.net\/ratgeber\/wp-json\/wp\/v2\/media?parent=32702"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.finanzen.net\/ratgeber\/wp-json\/wp\/v2\/categories?post=32702"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.finanzen.net\/ratgeber\/wp-json\/wp\/v2\/tags?post=32702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}