Sovrapposizione orari di lavoro
Una giornata 9–17 in UTC−5 e una 9–17 in UTC+0 condividono solo 3 ore, dalle 14:00 alle 17:00 UTC, cioè il 37,5 % della giornata più corta. Inserisca scarto e orario di ogni team, turni notturni compresi. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Scarto A
- -5
- Inizio A
- 9
- End a
- 17
- Scarto B
- 0
- Inizio B
- 9
- End b
- 17
- Etichetta dello sfasamento A
- UTC−5
- Etichetta dello sfasamento B
- UTC+0
- Ore del team A
- 8
- Ore del team B
- 8
I team distribuiti si pongono di continuo una domanda solo in apparenza semplice: se un gruppo lavora dalle nove alle cinque a New York e un altro dalle nove alle cinque a Londra, quanto di quelle due giornate è davvero concorrente? Un calcolatore della percentuale di sovrapposizione degli orari risponde con offset UTC fissi e ore locali di inizio e fine, non con nomi di città né con una base dell'ora legale. I turni notturni avvolgono la mezzanotte. Gli offset restano fra più e meno quattordici ore.
Come due giornate lavorative diventano una percentuale di sovrapposizione
Una giornata lavorativa è qui un intervallo locale semiaperto dall'ora di inizio a quella di fine su un orologio di ventiquattro ore, più un offset fisso rispetto al Tempo universale coordinato. Il team A in UTC meno cinque che lavora dalle nove alle diciassette occupa 14:00–22:00 UTC. Il team B in UTC più zero che lavora dalle nove alle diciassette occupa 09:00–17:00 UTC.
Quei due intervalli condividono 14:00–17:00 UTC, cioè tre ore. Quando la fine precede l'inizio, la finestra locale è un turno di notte e avvolge la mezzanotte prima della conversione UTC; una mattina di Tokyo e un pomeriggio di San Francisco si incontrano spesso come una fettina di due ore dopo quell'avvolgimento. Un giorno civile completo è inizio zero e fine ventiquattro, che copre l'intero cerchio UTC e quindi si sovrappone all'altro team per tutta la sua durata.
Un inizio uguale alla fine viene rifiutato come giornata di lunghezza zero invece di essere indovinato come ventiquattro ore, perché quelle due letture sono ambigue nei fogli di calcolo. Ore frazionarie come nove virgola cinque e offset come cinque virgola cinque (5.5) sono arrotondati al minuto più vicino così l'ora standard dell'India e un inizio alle nove e trenta restano esatti senza usare l'oggetto Date dell'ospite.
Casi d'uso
Organico di supporto a staffetta solare
Misuri i minuti concorrenti fra due desk di supporto così gli strumenti di roster non trattano mattine senza sovrapposizione come lo stesso turno.
Domande frequenti
I turni notturni e l'avvolgimento della mezzanotte funzionano?
Sì. Se la fine precede l'inizio, la finestra è trattata come turno di notte che avvolge la mezzanotte in ora locale e poi convertita in UTC prima dell'intersezione. Un giorno completo è start 0 e end 24.
Perché New York 9–17 e Londra 9–17 si sovrappongono solo al 37.5 per cento?
UTC−5 09:00–17:00 è 14:00–22:00 UTC; UTC+0 09:00–17:00 è 09:00–17:00 UTC.
Si usano zone IANA o l'ora legale?
No. Lei fornisce offset UTC fissi (ore, compresi valori frazionari come 5.5). Zone con nome e transizioni DST restano fuori ambito così il risultato è un'identità pura, senza Date.
Come si calcola la percentuale di sovrapposizione?
È il tempo condiviso diviso per la più corta delle due giornate, per 100. Due giornate di 8 ore che coincidono dalle 14:00 alle 17:00 UTC condividono 3 ore, quindi la sovrapposizione è del 37,5 %. Viene mostrata anche la quota di ciascun team.
E se la giornata di un team sta tutta dentro quella dell'altro?
Allora il dato principale è 100 %, perché ogni minuto della giornata più corta è simultaneo. I dati per team cambiano: il turno breve è condiviso per intero, mentre la giornata lunga può esserlo solo a metà.
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/biz/work-hours-overlap-percent \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"offset_a":-5,"start_a":9,"end_a":17,"offset_b":0,"start_b":9,"end_b":17}'const res = await fetch("https://api.kit.forhosting.com/biz/work-hours-overlap-percent", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"offset_a": -5,
"start_a": 9,
"end_a": 17,
"offset_b": 0,
"start_b": 9,
"end_b": 17
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/biz/work-hours-overlap-percent",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"offset_a": -5,
"start_a": 9,
"end_a": 17,
"offset_b": 0,
"start_b": 9,
"end_b": 17
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/biz/work-hours-overlap-percent", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"offset_a":-5,"start_a":9,"end_a":17,"offset_b":0,"start_b":9,"end_b":17}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"offset_a":-5,"start_a":9,"end_a":17,"offset_b":0,"start_b":9,"end_b":17}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/biz/work-hours-overlap-percent", 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
{
"offset_a": -5,
"start_a": 9,
"end_a": 17,
"offset_b": 0,
"start_b": 9,
"end_b": 17
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.work_hours_overlap_percent",
"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.
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
Lei invia sei numeri — offset, inizio e fine del team A e gli stessi tre del team B — e il risolutore proietta entrambe le finestre su un cerchio UTC di ventiquattro ore, le interseca e restituisce minuti di sovrapposizione, ore di sovrapposizione, la quota della giornata di ciascun team condivisa in diretta e un overlap_percent in evidenza pari a cento volte l'intersezione sulla giornata più corta.
Come due giornate lavorative diventano una percentuale di sovrapposizione
Entrambe le giornate durano otto ore, quindi la più corta è di otto ore e overlap_percent vale cento volte tre su otto, ovvero trentasette virgola cinque per cento (37.5). La stessa identità compare in ogni risposta riuscita: utc è locale meno l'offset, modulo ventiquattro ore; la sovrapposizione è l'intersezione dei due intervalli UTC su un giorno circolare; overlap_percent vale cento volte overlap_minutes diviso il minimo di team_a_minutes e team_b_minutes. I campi per team overlap_percent_a e overlap_percent_b usano la durata propria come denominatore, così una postazione di quattro ore interamente dentro una di otto ore riporta cento per cento per il team corto e cinquanta per quello lungo, mentre la cifra in evidenza resta cento perché ogni minuto della giornata più corta è concorrente.
Contratto di ingresso, campi della risposta e regole di convalida
Le ore possono essere frazionarie. Invii con POST un oggetto JSON con sei numeri finiti obbligatori. offset_a e offset_b sono offset UTC fissi in ore, ciascuno fra meno quattordici e più quattordici inclusi; gli alias includono utc_a, team_a_offset, a_offset e i nomi equivalenti del team B. start_a, end_a, start_b e end_b sono ore di orologio locale da zero a ventiquattro inclusi; gli alias includono team_a_start, a_start, team_a_end, a_end e i nomi equivalenti di B. Quando end_a precede start_a la finestra A avvolge la mezzanotte; la stessa regola vale per B. In caso di successo il corpo ripete i sei ingressi arrotondati e etichette di offset come UTC−5, riporta team_a_hours, team_b_hours, team_a_minutes e team_b_minutes, pubblica ogni finestra in UTC come team_a_utc_start, team_a_utc_end, team_b_utc_start e team_b_utc_end con i booleani team_a_wraps e team_b_wraps, e fornisce overlap_minutes, overlap_hours, overlap_percent, overlap_percent_a, overlap_percent_b, overlap_windows come array di orologi UTC di inizio e fine, same_window quando i due intervalli UTC sono identici, un messaggio di una riga e la stringa formula. Esempio: offset_a meno cinque, start_a nove, end_a diciassette, offset_b zero, start_b nove, end_b diciassette produce tre ore di sovrapposizione, trentasette virgola cinque per cento (37.5) e una sola finestra UTC da 14:00 a 17:00. Una convalida fallita — campi assenti, valori non finiti, un offset il cui valore assoluto supera quattordici, un inizio o una fine fuori da zero a ventiquattro, o una giornata di lunghezza zero — restituisce invalid_input nominando il campo e non viene mai fatturata. Le chiamate riuscite costano la tariffa base pubblicata $0.002 con unità item.
Dove una percentuale di sovrapposizione degli orari merita il posto
I team di operations sulle persone usano un calcolatore della percentuale di sovrapposizione degli orari quando redigono ore di collaborazione comune per un'azienda divisa in due sedi: se New York e Londra condividono solo tre ore su otto, una politica che esige quattro ore in diretta non è sostenibile senza allungare un lato. Offset non validi e giornate di lunghezza zero non consumano saldo. Conservi gli offset come i numeri UTC± già stampati su biglietti e configurazioni server; questo strumento non risolve nomi IANA come America/New_York e non applica transizioni dell'ora legale. Se una regione cambia offset a marzo, invii il numero invernale o quello estivo che intende davvero. I modelli di organico convertono overlap_hours in postazioni concorrenti così un roster di supporto a staffetta solare non finge che una mattina di Tokyo e una mattina della California siano lo stesso turno. Le organizzazioni di vendita e successo cliente fissano le chiamate ricorrenti nell'intersezione pubblicata come overlap_windows invece di indovinare con un orologio mondiale. Un linguaggio contrattuale che promette una giornata condivisa minima può inchiodare overlap_percent in un test invece che in uno screenshot. Poiché l'implementazione è parse di livello A, ogni chiamata riuscita costa il $0.002 pubblicato, senza token di modello e senza rete in uscita. Accoppi esempi quando insegna: offset e ore identici restituiscono cento per cento e same_window true; New York contro Londra dalle nove alle cinque restituisce trentasette virgola cinque per cento (37.5); Tokyo dalle nove alle diciotto contro San Francisco dalle nove alle diciotto restituisce una fettina breve consapevole dell'avvolgimento; un offset di quindici dimostra il percorso duro di invalid_input. Fissi overlap_percent e overlap_minutes nei test e ottiene un'aritmetica di concorrenza riproducibile per manuali, landing SEO e edge worker senza alzare un database di fusi proprio.
Casi di integrazione
Ore di collaborazione comune per due sedi
Converta l'inizio e la fine locali di ogni ufficio più l'offset UTC in overlap_percent e overlap_windows prima di pubblicare ore obbligatorie di collaborazione in diretta.
Fasce di riunione ricorrente fra offset
Collochi le chiamate fisse dentro l'intersezione UTC restituita come overlap_windows invece di indovinare da uno screenshot di orologio mondiale.
Domande tecniche
Come si calcola la percentuale di sovrapposizione degli orari?
Inizio e fine locali di ciascun team vengono spostati in UTC sottraendo l'offset fisso; poi i due intervalli si intersecano su un cerchio di 24 ore. overlap_percent vale 100 × overlap_minutes / min(team_a_minutes, team_b_minutes).
Quanto costa il calcolatore di sovrapposizione degli orari?
Lo strumento del browser è gratuito. Le richieste API usano il saldo prepagato KIT a $0.002 per chiamata riuscita; un ingresso non valido non viene fatturato.