ForHosting KIT · Dates et temps

Additionner deux durées ISO 8601

Saisissez deux durées ISO 8601 et obtenez leur somme en une seule durée propre : P1W plus P3D donne P10D, car chaque semaine devient sept jours. Secondes, minutes, heures et mois sont reportés, et les unités nulles disparaissent. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Durée 1
P1Y2M3DT4H5M6S
Durée 2
P2Y1M10DT1H55M54S
Vous obtenez
Sum
P3Y3M13DT6H1M
Années
3
Mois
3
Jours
13

Les chaînes de durée ISO 8601 telles que P1Y2M3DT4H5M6S apparaissent dans les APIs, calendriers, accords de niveau de service et fichiers de configuration dès qu'il faut exprimer une longueur de temps sans l'ancrer à une date de calendrier. Additionner deux de ces chaînes à la main est source d'erreurs : les semaines doivent devenir des jours, les secondes doivent se reporter en minutes et les mois en années, sans inventer une conversion jours-vers-mois qui dépendrait d'une date de début. Cette calculatrice d'addition de deux durées ISO 8601 accepte deux chaînes non négatives, analyse chaque désignateur dans un ordre fixe, développe les semaines en blocs de sept jours, additionne chaque composante et renvoie une durée normalisée plus les champs année, mois, jour, heure, minute et seconde.

Ce que signifie additionner des durées ISO 8601

Une durée ISO 8601 décrit une longueur de temps avec les désignateurs Y pour les années, M pour les mois, W pour les semaines, D pour les jours, et après un marqueur T, H pour les heures, M pour les minutes et S pour les secondes. Les valeurs typiques incluent P1Y pour une année, P2M15D pour deux mois et quinze jours, PT1H30M pour quatre-vingt-dix minutes écrites comme une heure trente minutes, et la forme complète P1Y2M3DT4H5M6S.

Additionner deux durées est un problème composante par composante : les années s'ajoutent aux années, les mois aux mois, et ainsi de suite. Les semaines sont développées en jours avec le facteur fixe sept, de sorte que P1W plus P3D donne P10D plutôt qu'une chaîne mixte semaines et jours. Après l'addition, le moteur normalise par report les champs de temps et de mois avec des règles entières déterministes : soixante secondes deviennent une minute, soixante minutes une heure, vingt-quatre heures un jour et douze mois une année.

Les jours ne sont jamais convertis en mois car la longueur d'un mois dépend d'une date de début calendaire que cet outil ne prend délibérément pas. Le résultat est une chaîne canonique qui omet les désignateurs nuls, utilise P0D lorsque chaque composante est nulle, et n'émet jamais un T nu sans champs de temps. Ce contrat correspond à ce qu'attendent les bibliothèques de validation et les formulaires de schéma lorsqu'ils vérifient PnYnMnDTnHnMnS sans réanalyser du texte libre.

Où combiner deux durées ISO apporte de la valeur

Les équipes produit et plateforme combinent des périodes de bail, des extensions d'essai et des fenêtres de maintenance déjà stockées comme durées ISO dans des systèmes de configuration ou de facturation ; ajouter P1Y à P3M doit donner P1Y3M sans approximations de jours en virgule flottante. Les enseignants et auteurs de documentation démontrent l'arithmétique des durées à côté des tables RFC et ISO sans numéros de série de tableur qui incluent silencieusement l'heure du jour.

Les scripts d'exploitation fusionnent des fenêtres de rétention de sauvegarde ou des backoffs de nouvelle tentative exprimés en chaînes PnD et PTnH issues de deux sources et écrivent une seule valeur normalisée dans un registre. Gardez les deux chaînes courtes, figez sum et les champs de composantes dans les tests, et vous obtenez une addition de durées reproductible pour les devoirs, plugins LMS, edge workers et pages du catalogue qui se positionnent sur l'addition de deux durées ISO 8601 sans monter une bibliothèque calendaire complète.

Facturation et extensions d'essai

Additionnez la durée de base d'un abonnement à une fenêtre d'extension (par exemple P1Y plus P1M) et stockez la somme normalisée dans la configuration ou les factures.

Fusionner fenêtres de rétention et SLA

Combinez deux durées de politique issues de systèmes différents en une seule chaîne canonique PnYnMnDTnHnMnS pour registres et runbooks.

Les semaines sont-elles prises en charge ?

Oui. Un désignateur W est accepté en entrée et converti en sept jours avant l'addition, de sorte que P1W plus P3D devient P10D dans la somme normalisée.

Pourquoi les jours ne sont-ils pas convertis en mois ?

La longueur d'un mois dépend d'une date de début calendaire. Cet outil additionne des durées pures sans date de référence, donc les jours restent des jours tandis que les mois se reportent toujours en années par paquets de douze.

Comment additionner deux durées ISO 8601 ?

Chaque unité s'ajoute à la même unité, puis l'excédent passe à l'unité suivante. Par exemple, P1Y2M3DT4H5M6S plus P2Y1M10DT1H55M54S donne P3Y3M13DT6H1M : les minutes et secondes qui atteignent 60 montent d'un cran.

Puis-je utiliser des valeurs négatives ou décimales ?

Non. Chaque durée doit être positive ou nulle, avec des nombres entiers et les lettres dans l'ordre standard. Les signes plus ou moins, les fractions, un P seul et les lettres dans le désordre sont refusés plutôt que devinés.

Quelles unités sont reportées après l'addition ?

Soixante secondes deviennent une minute, soixante minutes une heure, vingt-quatre heures un jour et douze mois un an. Ainsi, additionner 5 et 55 minutes ajoute une heure de plus.

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.

POSThttps://api.kit.forhosting.com/date/iso-duration-add

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é.

curl -X POST https://api.kit.forhosting.com/date/iso-duration-add \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"duration1":"P1Y2M3DT4H5M6S","duration2":"P2Y1M10DT1H55M54S"}'
{
  "duration1": "P1Y2M3DT4H5M6S",
  "duration2": "P2Y1M10DT1H55M54S"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "date.iso_duration_add",
  "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.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Contrat d'entrée, forme de la réponse et erreurs

Chaque valeur doit être une durée ISO 8601 non négative respectant la grammaire ordonnée des désignateurs PnYnMnWnDTnHnMnS avec des composantes entières uniquement. En cas de succès le corps renvoie les deux entrées comme durées canoniques avec les semaines déjà développées en jours, la chaîne sum après normalisation complète par report, les six champs entiers non négatifs years, months, days, hours, minutes et seconds, et un court rappel de la formule de l'algorithme. Les requêtes rejetées ne sont pas facturées. Envoyez un corps JSON avec deux champs chaîne obligatoires : duration1 et duration2. Les signes plus ou moins initiaux sont rejetés afin que la somme soit toujours une longueur non négative ; chaînes vides, P nu, désignateurs hors ordre, parties fractionnaires et texte non durée échouent avec invalid_input en nommant le champ. Les alias a, first, left et d1 correspondent à duration1 ; b, second, right et d2 à duration2, pour que tableurs et formulaires réutilisent de courts noms de colonnes. Exemple : duration1 égal à P1Y2M3DT4H5M6S et duration2 égal à P2Y1M10DT1H55M54S donnent sum P3Y3M13DT6H1M car cinq minutes plus cinquante-cinq minutes reportent une heure, et six secondes plus cinquante-quatre restent sous soixante. Associez l'exécution gratuite du navigateur sur cette page à l'API payante lorsque vous avez besoin de la même addition dans un pipeline automatisé sans réimplémenter des analyseurs de durée dans chaque service.

Où combiner deux durées ISO apporte de la valeur

Comme l'implémentation est du parse pur de niveau A, chaque appel réussi coûte le prix de base publié $0.002 sans jetons de modèle ni réseau sortant, et une validation échouée ne consomme pas de solde.

Fixtures de CI pour planificateurs

Affirmez que PT90M plus PT30M se normalise en PT2H dans les tests unitaires sans dépendre de Date, des locales ni de l'horloge de l'hôte.

Comment additionner deux chaînes de durée ISO 8601 ?

Envoyez duration1 et duration2 comme chaînes PnYnMnWnDTnHnMnS non négatives. L'API développe les semaines en jours, additionne chaque composante, normalise par report et renvoie sum plus years, months, days, hours, minutes et seconds.

Quelles entrées sont rejetées ?

Champs manquants, chaînes vides, P nu, signes initiaux, composantes fractionnaires, désignateurs hors ordre et texte non durée échouent avec invalid_input et ne sont pas facturés.

Combien coûte l'additionneur de durées ISO ?

L'outil navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; une entrée invalide n'est pas facturée.

Consulter la documentation complète du KIT →