Totale ore lavorate al netto delle pause
Sommi le ore lavorate dagli orari di entrata e uscita, al netto delle pause non retribuite: due turni dalle 09:00 alle 17:30 e dalle 09:15 alle 17:00, con pause di 30 e 45 minuti, danno 15 ore nette. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Il calcolatore del totale delle ore lavorate somma un elenco di registrazioni di entrata e uscita, sottrae la pausa non retribuita indicata per ogni turno e restituisce un totale netto chiaro. Ogni data e ora ISO deve includere Z oppure uno scostamento esplicito, così i dati di sedi diverse, periodi con ora legale o turni notturni vengono confrontati su un'unica linea temporale UTC. Il risultato mostra anche le ore lorde, i minuti complessivi di pausa e il numero di turni inclusi, agevolando la verifica o l'automazione del calcolo.
Inserisca turni completi e privi di ambiguità
Fornisca una riga per ogni periodo continuativo di lavoro. Lo scostamento è indispensabile perché, durante i cambi dell'ora, un orario locale isolato non identifica sempre un istante univoco. Sono ammessi minuti di pausa decimali, utili quando il sistema sorgente registra frazioni di minuto.
L'uscita può ricadere nel giorno di calendario successivo, quindi il lavoro notturno non richiede una modalità speciale. Il calcolatore rifiuta date impossibili, scostamenti mancanti, uscite non successive alle entrate, pause negative e pause più lunghe del turno. Rifiuta inoltre i turni sovrapposti dopo la normalizzazione UTC, perché contarli entrambi aumenterebbe il totale senza segnalarlo.
Rendere esplicita ogni riga consente di controllare l'input ed evita supposizioni su pause pranzo, regole di arrotondamento o intervalli tra turni da considerare come pausa.
Comprenda come viene eseguito il calcolo UTC
Ogni marca temporale viene interpretata come valore del calendario gregoriano e convertita in una posizione espressa in millisecondi UTC tramite lo scostamento indicato. Il calcolo non consulta il fuso orario del dispositivo, un database dei fusi, la data corrente o servizi esterni. Per ogni riga valida, la durata lorda equivale all'istante UTC di uscita meno quello di entrata.
La pausa inserita viene convertita da minuti a millisecondi e sottratta dalla durata lorda di quella riga. Le durate lorde e le pause vengono quindi sommate separatamente prima di produrre il totale netto finale. Questo ordine garantisce risultati stabili per gruppi che utilizzano scostamenti diversi e per turni che superano la mezzanotte.
Ore e minuti vengono arrotondati a sei cifre decimali solo nell'output; l'accumulo interno resta in millisecondi interi.
Utilizzi il risultato per paghe e rendicontazione
I campi restituiti separano l'attività originaria dalla durata finale retribuibile, consentendo a chi verifica di riprodurre il calcolo. La capacità non applica fasce di straordinario, regole sulle pause retribuite, tariffe salariali, tolleranze d'orario o arrotondamenti specifici dell'azienda. Tali criteri cambiano in base al contratto e alla giurisdizione e devono essere applicati in un passaggio successivo ben documentato.
La funzione è quindi un componente deterministico per preparare paghe, fatture di collaboratori, rapporti di progetto e riconciliazioni delle presenze senza incorporare criteri nascosti. Per importazioni ripetibili, conservi le stringhe ISO e gli scostamenti originali insieme al riepilogo, affinché ogni totale contestato possa essere ricondotto agli istanti e alle detrazioni esatti.
Casi d'uso
Preparare un totale per le paghe
Combini turni approvati e pause non retribuite in una durata netta prima di applicare tariffe o regole sugli straordinari.
Verificare la fattura di un collaboratore
Ricalcoli il tempo fatturato dalle registrazioni senza dipendere dal fuso orario locale di chi effettua il controllo.
Riconciliare le esportazioni delle presenze
Confronti tempo lordo, detrazioni e numero di turni con i dati esportati da un sistema di timbratura.
Domande frequenti
Quale formato di data e ora è richiesto?
Utilizzi ISO 8601 con data, ora fino ai secondi e Z oppure uno scostamento esplicito, ad esempio 2026-07-20T09:00:00-04:00.
Come si indicano le pause?
Se lo omette, la detrazione per quel turno è zero.
Calcola gli straordinari o le retribuzioni?
No. Restituisce solo durate; soglie degli straordinari, arrotondamenti, tariffe e norme sul lavoro richiedono un altro passaggio.
Perché i turni sovrapposti vengono rifiutati?
Gli intervalli sovrapposti conterebbero due volte lo stesso tempo. Il rifiuto evidenzia il conflitto invece di produrre un totale gonfiato.
Un turno può superare la mezzanotte?
Sì. L'uscita può cadere nel giorno successivo, quindi i turni notturni non richiedono impostazioni speciali. Ogni orario viene posto su un'unica linea del tempo UTC secondo il proprio scostamento prima del conteggio.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/date/timesheet-total \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"shifts":[{"clock_in":"2026-07-20T09:00:00-04:00","clock_out":"2026-07-20T17:30:00-04:00","break_minutes":30},{"clock_in":"2026-07-21T09:15:00-04:00","clock_out":"2026-07-21T17:00:00-04:00","break_minutes":45}]}'const res = await fetch("https://api.kit.forhosting.com/date/timesheet-total", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"shifts": [
{
"clock_in": "2026-07-20T09:00:00-04:00",
"clock_out": "2026-07-20T17:30:00-04:00",
"break_minutes": 30
},
{
"clock_in": "2026-07-21T09:15:00-04:00",
"clock_out": "2026-07-21T17:00:00-04:00",
"break_minutes": 45
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/timesheet-total",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"shifts": [
{
"clock_in": "2026-07-20T09:00:00-04:00",
"clock_out": "2026-07-20T17:30:00-04:00",
"break_minutes": 30
},
{
"clock_in": "2026-07-21T09:15:00-04:00",
"clock_out": "2026-07-21T17:00:00-04:00",
"break_minutes": 45
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/timesheet-total", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"shifts":[{"clock_in":"2026-07-20T09:00:00-04:00","clock_out":"2026-07-20T17:30:00-04:00","break_minutes":30},{"clock_in":"2026-07-21T09:15:00-04:00","clock_out":"2026-07-21T17:00:00-04:00","break_minutes":45}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"shifts":[{"clock_in":"2026-07-20T09:00:00-04:00","clock_out":"2026-07-20T17:30:00-04:00","break_minutes":30},{"clock_in":"2026-07-21T09:15:00-04:00","clock_out":"2026-07-21T17:00:00-04:00","break_minutes":45}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/timesheet-total", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"shifts": [
{
"clock_in": "2026-07-20T09:00:00-04:00",
"clock_out": "2026-07-20T17:30:00-04:00",
"break_minutes": 30
},
{
"clock_in": "2026-07-21T09:15:00-04:00",
"clock_out": "2026-07-21T17:00:00-04:00",
"break_minutes": 45
}
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.timesheet_total",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_items | 10000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Inserisca turni completi e privi di ambiguità
Ogni riga richiede una data e ora clock_in e una clock_out in formato ISO 8601, con i secondi e Z oppure uno scostamento UTC numerico, ad esempio -04:00. Aggiunga break_minutes quando il turno include una pausa non retribuita; ometta il campo se non deve essere applicata alcuna detrazione.
Comprenda come viene eseguito il calcolo UTC
L'output comprende total_hours per il tempo netto lavorato, total_minutes per i sistemi che preferiscono i minuti, gross_hours prima delle detrazioni, break_minutes come detrazione complessiva e shift_count per la riconciliazione. Gli stessi input producono quindi lo stesso JSON indipendentemente dalla lingua del browser o dalla posizione del server.
Utilizzi il risultato per paghe e rendicontazione
Confronti shift_count con il numero di righe importate, gross_hours con l'intervallo lordo delle timbrature e break_minutes con le detrazioni non retribuite previste prima di accettare total_hours. Non deduce neppure le pause dagli spazi tra righe separate: vengono sottratti esclusivamente i valori break_minutes forniti da Lei. Può eseguirla gratuitamente nel browser per un controllo individuale, mentre l'automazione tramite API costa $0.002 per richiesta.
Domande tecniche
Quanto costa una richiesta?
L'automazione tramite API costa $0.002 per richiesta e il calcolo può anche essere eseguito gratuitamente nel browser.