Calculateur de durée/ années · mois · jours · heures · minutes
Calculez la différence exacte entre deux dates ou heures — décomposée en années, mois, jours, heures, minutes et secondes.
Début
Fin
Durée de Début à Fin
1
an
Années
0
mo.
Mois
0
j.
Jours
0
h.
Heures
0
min.
Minutes
0
s.
Secondes
365
Jours totaux
52
Semaines totales
8,760
Heures totales
525,600
Minutes totales
Cet outil a-t-il résolu votre problème ?
Exemples de code
JavaScript (date-fns)
import {
differenceInYears, differenceInMonths,
differenceInDays, differenceInHours,
formatDistanceToNow, intervalToDuration,
format
} from 'date-fns';
const start = new Date('2020-01-15');
const end = new Date('2024-06-30');
differenceInYears(end, start) // 4
differenceInDays(end, start) // 1628
differenceInHours(end, start) // 39072
// Human-readable breakdown
intervalToDuration({ start, end })
// { years:4, months:5, days:15, hours:0, ... }
// Relative time
formatDistanceToNow(start, { addSuffix: true })
// "about 4 years ago"Python
from datetime import datetime, date from dateutil.relativedelta import relativedelta start = datetime(2020, 1, 15) end = datetime(2024, 6, 30) # Total difference diff = end - start diff.days # 1628 diff.total_seconds() / 3600 # 39072.0 # Calendar-aware breakdown (pip install python-dateutil) delta = relativedelta(end, start) delta.years # 4 delta.months # 5 delta.days # 15 # Age calculation birthday = date(1990, 5, 20) today = date.today() age = relativedelta(today, birthday).years
Go
import (
"fmt"
"time"
)
start := time.Date(2020, 1, 15, 0, 0, 0, 0, time.UTC)
end := time.Date(2024, 6, 30, 0, 0, 0, 0, time.UTC)
duration := end.Sub(start)
fmt.Println(duration.Hours() / 24) // 1628 days
fmt.Println(duration.Hours()) // 39072 hours
// Calendar diff (years/months) — manual calculation
years := end.Year() - start.Year()
months := int(end.Month()) - int(start.Month())
if months < 0 {
years--
months += 12
}
fmt.Printf("%d years, %d months\n", years, months)SQL
-- MySQL / MariaDB
SELECT
DATEDIFF('2024-06-30', '2020-01-15') AS days,
TIMESTAMPDIFF(YEAR, '2020-01-15', '2024-06-30') AS years,
TIMESTAMPDIFF(MONTH, '2020-01-15', '2024-06-30') AS months,
TIMESTAMPDIFF(HOUR, '2020-01-15', '2024-06-30') AS hours;
-- PostgreSQL
SELECT
'2024-06-30'::date - '2020-01-15'::date AS days,
AGE('2024-06-30', '2020-01-15') AS human_readable;
-- 4 years 5 mons 15 days
-- SQLite
SELECT julianday('2024-06-30') - julianday('2020-01-15');
-- 1628.0Questions fréquemment posées
Pourquoi ne peut-on pas simplement diviser les millisecondes ?
La division de millisecondes donne la durée totale exacte mais pas la répartition intuitive 'X années, Y mois, Z jours'. Les longueurs de mois varient (28–31 jours) et les années bissextiles existent. Cet outil utilise un algorithme calendaire.
Comment calculer l'âge ou l'ancienneté ?
Entrez la date de naissance ou de début comme 'Début' et la date du jour comme 'Fin' — le résultat montre les années exactes avec les mois et jours restants.
Combien de jours ouvrés entre deux dates ?
Le calcul des jours ouvrés est plus complexe : il faut exclure les week-ends et éventuellement les jours fériés. Pour la production, utilisez une bibliothèque comme date-fns differenceInBusinessDays.
Les secondes intercalaires affectent-elles le calcul ?
Non, pour les calculs de dates ordinaires. L'objet Date de JavaScript et la plupart des systèmes d'exploitation ne tiennent pas compte des secondes intercalaires.
Comment afficher le temps relatif ('il y a 3 jours') en JavaScript ?
Utilisez l'API Intl.RelativeTimeFormat (native dans les navigateurs modernes) : const rtf = new Intl.RelativeTimeFormat('fr', { numeric: 'auto' }); rtf.format(-3, 'day'). Ou date-fns formatDistanceToNow().
Comment calculer les différences de fuseau horaire ?
L'objet Date de JavaScript stocke les horodatages UTC en interne ; les infos de fuseau horaire ne sont appliquées qu'à l'affichage. Soustraire les valeurs getTime() donne la différence correcte.