Heures ouvrées entre deux dates et heures
Un ticket ouvert le vendredi 24 juillet 2026 à 15:00 UTC et fermé le lundi 27 à 11:30 a consommé 4,5 heures ouvrées, soit 270 minutes. Le week-end et les heures hors de la plage quotidienne sont exclus. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Date et heure de début
- 2026-07-24T15:00:00Z
- Date et heure de fin
- 2026-07-27T11:30:00Z
- Secondes ouvrées
- 16 200
- Minutes ouvrées
- 270
- Heures ouvrées
- 4,5
- Début de la journée de travail
- 09:00
Ce calculateur mesure uniquement la partie d’un intervalle explicite comprise dans une plage ouvrée quotidienne UTC, du lundi au vendredi. Il accepte des dates-heures ISO avec fuseau, convertit les deux bornes en UTC par arithmétique déterministe et exclut les samedis et dimanches. Vous pouvez conserver la plage 09:00–17:00 ou en définir une autre dans la même journée. La réponse fournit les secondes exactes ainsi que les totaux en minutes et en heures.
Définissez précisément l’intervalle et la plage
Le fuseau obligatoire évite qu’une heure locale désigne des instants différents selon la machine. Le début est inclus et la fin exclue, afin d’additionner des intervalles consécutifs sans compter deux fois leur frontière. Ses deux bornes doivent appartenir au même jour UTC et la fermeture doit suivre l’ouverture.
Les services de nuit sont refusés pour éviter une attribution ambiguë au jour ouvré. Seul le chevauchement réel compte: une période commencée vendredi peut retenir les dernières heures, ignorer le week-end et reprendre lundi. Les jours fériés ne sont pas déduits, car ils varient selon le pays, la région, le secteur et l’employeur.
Comprenez le calcul UTC déterministe
Chaque décalage est converti en instant UTC par calcul entier sur le calendrier grégorien. Elle parcourt ensuite l’ensemble borné des jours UTC touchés. Du lundi au vendredi, une plage candidate est appliquée; samedi et dimanche ne contribuent pas.
Pour chaque jour ouvré, le calcul intersecte l’intervalle demandé avec l’ouverture et la fermeture, puis additionne les secondes positives. Deux bornes égales donnent zéro; une fin antérieure est rejetée.
Intégrez le résultat à vos opérations
Les équipes d’assistance peuvent mesurer le temps ouvré consommé par un ticket sans imputer les nuits ou week-ends à un objectif interne. Les opérations peuvent comparer la prise en charge et la résolution d’incidents sur une horloge commune, même avec des sources utilisant plusieurs décalages. Les services financiers peuvent transformer des activités horodatées en totaux vérifiables avant d’appliquer leurs règles de facturation.
Conservez les bornes d’origine, la plage UTC et les secondes retournées: le calcul est reproductible, car il ne dépend ni de la date du jour, ni du fuseau du serveur, ni d’un calendrier externe. Pour des jours fériés, pauses, week-ends régionaux, rotations, heures locales saisonnières ou services de nuit, appliquez une couche dédiée. Ce contrat fournit une référence UTC transparente, facile à tester, additionner et justifier.
Cas d’usage
Mesure des SLA d’assistance
Comptez uniquement le temps de la plage ouvrée entre création et résolution d’un ticket.
Rapports de durée d’incident
Normalisez les événements décalés sur une plage UTC et excluez les week-ends.
Totaux de service auditables
Produisez des secondes ouvrées déterministes pour facturation ou conformité, sans règle locale cachée.
Questions fréquentes
Quels jours sont exclus?
Le samedi et le dimanche UTC sont exclus. Les jours fériés et week-ends régionaux ne sont pas inclus.
La plage suit-elle l’heure d’été?
Non. La plage est définie en UTC et reste stable malgré les changements saisonniers.
Puis-je définir un service de nuit?
Non. L’ouverture et la fermeture doivent être dans le même jour UTC, la seconde étant plus tardive.
L'heure de fin est-elle comptée ?
Non. Le moment de début compte, celui de fin non : vous pouvez donc additionner des intervalles consécutifs, un par équipe ou par jour, sans compter deux fois leur point de jonction.
Faut-il indiquer un fuseau horaire ?
Oui. Chaque date et heure doit porter la marque UTC ou un décalage explicite. Une heure locale sans fuseau peut désigner des instants différents selon l'ordinateur, donc le calculateur ne devine rien et convertit tout en UTC.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/date/working-hours-between \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start_datetime":"2026-07-24T15:00:00Z","end_datetime":"2026-07-27T11:30:00Z"}'const res = await fetch("https://api.kit.forhosting.com/date/working-hours-between", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start_datetime": "2026-07-24T15:00:00Z",
"end_datetime": "2026-07-27T11:30:00Z"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/working-hours-between",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start_datetime": "2026-07-24T15:00:00Z",
"end_datetime": "2026-07-27T11:30:00Z"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/working-hours-between", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start_datetime":"2026-07-24T15:00:00Z","end_datetime":"2026-07-27T11:30:00Z"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start_datetime":"2026-07-24T15:00:00Z","end_datetime":"2026-07-27T11:30:00Z"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/working-hours-between", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"start_datetime": "2026-07-24T15:00:00Z",
"end_datetime": "2026-07-27T11:30:00Z"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.working_hours_between",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_span_days | 36600 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Définissez précisément l’intervalle et la plage
Transmettez `start_datetime` et `end_datetime` sous forme de dates-heures ISO complètes avec `Z` ou un décalage UTC numérique. La plage récurrente vaut 09:00–17:00 UTC par défaut; modifiez-la avec `workday_start` et `workday_end`, au format 24 heures `HH:MM`.
Comprenez le calcul UTC déterministe
L’implémentation ne crée aucun objet `Date`, ne consulte ni horloge, ni paramètres régionaux, ni service de fuseaux, et n’utilise ni réseau ni hasard. Les journées initiale et finale partielles sont ainsi traitées correctement, et deux décalages désignant le même instant donnent le même résultat. `working_seconds` est un entier exact; `working_minutes` et `working_hours` en dérivent et sont arrondis à six décimales au plus pour stabiliser le JSON. La réponse rappelle la plage retenue et indique `timezone` à `UTC`, rendant les hypothèses visibles.
Intégrez le résultat à vos opérations
Le navigateur convient aux contrôles ponctuels; l’API coûte $0.002 par requête réussie.
Questions techniques
Quel est le tarif?
L’API coûte $0.002 par requête réussie; le même calcul pur peut s’exécuter dans le navigateur.
Les dates peuvent-elles avoir un décalage UTC?
Oui. Utilisez `Z` ou un décalage explicite tel que `-04:00`; chaque borne est normalisée en UTC.