Calculateur de durée
Ajoutez ou soustrayez des heures, minutes et secondes pour calculer des durées.
À propos de cet outil
La Calculatrice de Durée additionne ou soustrait pour vous des heures, des minutes et des secondes, ou détermine l'écart entre une heure de début et une heure de fin. Elle vous épargne le calcul mental sujet aux erreurs qui consiste à reporter les secondes sur les minutes et les minutes sur les heures quand vous voulez simplement un total net.
Saisissez vos valeurs de temps et choisissez de les additionner, d'en soustraire une autre ou de mesurer l'intervalle entre deux heures, et le résultat s'affiche aussitôt. Elle est pratique pour remplir des feuilles de temps, découper des clips vidéo et audio, suivre les étapes de cuisine et de pâtisserie, noter des temps intermédiaires d'entraînement et cumuler des heures facturables.
La calculatrice gère elle-même chaque retenue, convertissant 90 secondes en 1 minute 30 secondes et 75 minutes en 1 heure 15 minutes, sans mauvaise surprise d'arrondi. Tout fonctionne entièrement dans votre navigateur, vos chiffres restent donc sur votre appareil et les résultats sont immédiats, même hors ligne.
Questions Fréquentes
Implémentation du Code
import re
def parse_duration(s: str) -> int:
"""Parse a duration string like '1h 30m 45s' into total seconds."""
pattern = r'(?:(d+)s*dw*)?s*(?:(d+)s*hw*)?s*(?:(d+)s*mw*)?s*(?:(d+)s*sw*)?'
match = re.fullmatch(pattern.strip(), s.strip(), re.IGNORECASE)
if not match or not any(match.groups()):
raise ValueError(f"Cannot parse duration: {s!r}")
d, h, m, sec = (int(x or 0) for x in match.groups())
return d * 86400 + h * 3600 + m * 60 + sec
def format_duration(seconds: int) -> str:
"""Format total seconds back to a human-readable string."""
seconds = abs(int(seconds))
d = seconds // 86400
h = (seconds % 86400) // 3600
m = (seconds % 3600) // 60
s = seconds % 60
parts = []
if d: parts.append(f"{d}d")
if h: parts.append(f"{h}h")
if m: parts.append(f"{m}m")
if s or not parts: parts.append(f"{s}s")
return " ".join(parts)
def add_durations(*durations: str) -> str:
total = sum(parse_duration(d) for d in durations)
return format_duration(total)
# Examples
print(parse_duration("1h 30m")) # 5400
print(parse_duration("2d 4h 15m 0s")) # 187500
print(format_duration(5400)) # "1h 30m"
print(add_durations("1h 30m", "45m", "2h 15m")) # "4h 30m"Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.