C# Academy · Leçon

TimeSpan et durées

Mesurez des intervalles de temps.

Leçon 3 sur 413 étapes

TimeSpan et durées est une leçon C# Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C# Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C# Academy comprend 4 leçons au total.

Qu'est-ce qu'un TimeSpan

Alors que DateTime représente un instant précis, TimeSpan représente une durée, comme 2 heures ou 90 minutes.

Il s'agit d'une durée à laquelle aucun calendrier n'est associé. Vous l'utilisez pour les résultats d'un chronomètre, les délais d'expiration et l'intervalle entre deux dates.

Créer un TimeSpan

Un constructeur accepte les heures, les minutes et les secondes : new TimeSpan(hours, minutes, seconds).

Ainsi, new TimeSpan(1, 30, 0) représente une heure et trente minutes. La valeur s'affiche dans un format clair h:mm:ss.

using System;

class Program
{
    static void Main()
    {
        TimeSpan span = new TimeSpan(1, 30, 0);
        Console.WriteLine(span);
    }
}

Méthodes de fabrique

Il est souvent plus lisible d'utiliser une méthode de fabrique. TimeSpan.FromMinutes(90) crée une durée de 90 minutes.

Il existe des méthodes auxiliaires correspondantes : FromHours, FromSeconds, FromDays et FromMilliseconds.

using System;

class Program
{
    static void Main()
    {
        TimeSpan span = TimeSpan.FromMinutes(90);
        Console.WriteLine(span);
    }
}

Valeurs totales et valeurs composantes

TimeSpan possède deux familles de propriétés. Hours, Minutes et Seconds représentent les composantes décomposées.

Les versions Total..., comme TotalMinutes, expriment la durée entière dans une seule unité, sous forme décimale.

using System;

class Program
{
    static void Main()
    {
        TimeSpan span = TimeSpan.FromMinutes(90);
        Console.WriteLine(span.Hours);
        Console.WriteLine(span.TotalMinutes);
    }
}

Différence entre les composantes et le total

Pour 90 minutes, Hours vaut 1 et Minutes vaut 30, car la durée se décompose en 1 heure et 30 minutes.

En revanche, TotalHours vaut 1,5 et TotalMinutes vaut 90, car ces propriétés comptent toute la durée dans une seule unité.

using System;

class Program
{
    static void Main()
    {
        TimeSpan span = TimeSpan.FromMinutes(90);
        Console.WriteLine(span.TotalHours);
    }
}

Soustraire deux dates

Lorsque vous soustrayez un DateTime d'un autre, le résultat est un TimeSpan.

C'est la manière courante de déterminer le temps écoulé entre deux instants, par exemple la durée d'un événement.

using System;

class Program
{
    static void Main()
    {
        DateTime start = new DateTime(2024, 3, 5, 9, 0, 0);
        DateTime end = new DateTime(2024, 3, 5, 11, 30, 0);
        TimeSpan diff = end - start;
        Console.WriteLine(diff.TotalHours);
    }
}

Additionner des TimeSpans

Vous pouvez additionner ou soustraire des valeurs TimeSpan avec les opérateurs habituels + et -.

La combinaison de deux durées en produit une plus longue, ce qui est utile pour additionner plusieurs intervalles.

using System;

class Program
{
    static void Main()
    {
        TimeSpan a = TimeSpan.FromMinutes(45);
        TimeSpan b = TimeSpan.FromMinutes(15);
        Console.WriteLine((a + b).TotalMinutes);
    }
}

Durées négatives

Un TimeSpan peut être négatif si la fin précède le début ou après une soustraction.

La méthode Duration renvoie la valeur absolue et Negate inverse le signe. Ces méthodes sont utiles lorsque seule la grandeur vous importe.

using System;

class Program
{
    static void Main()
    {
        TimeSpan span = TimeSpan.FromHours(-3);
        Console.WriteLine(span.Duration().TotalHours);
    }
}

Comparer des durées

Les valeurs TimeSpan se comparent avec <, > et ==, comme les nombres.

Vous pouvez ainsi vérifier si une durée est plus longue qu'une autre, par exemple pour imposer une durée maximale autorisée.

using System;

class Program
{
    static void Main()
    {
        TimeSpan limit = TimeSpan.FromHours(2);
        TimeSpan used = TimeSpan.FromMinutes(150);
        Console.WriteLine(used > limit);
    }
}

Zéro et constantes

TimeSpan.Zero représente un temps écoulé nul, ce qui en fait un point de départ pratique pour les sommes.

Il existe également TimeSpan.MinValue et TimeSpan.MaxValue pour les limites extrêmes d'une durée.

using System;

class Program
{
    static void Main()
    {
        TimeSpan total = TimeSpan.Zero;
        total += TimeSpan.FromMinutes(10);
        Console.WriteLine(total.TotalMinutes);
    }
}

Mettre en forme un TimeSpan

Vous pouvez mettre en forme un TimeSpan avec une chaîne personnalisée. Par exemple, @"hh\:mm" affiche les heures et les minutes.

Les barres obliques inverses échappent le deux-points afin qu'il s'affiche littéralement. Pour une sortie rapide, le ToString par défaut suffit généralement.

using System;

class Program
{
    static void Main()
    {
        TimeSpan span = new TimeSpan(2, 5, 0);
        Console.WriteLine(span.ToString(@"hh\:mm"));
    }
}

Vérification rapide

Vous disposez d'un TimeSpan de 90 minutes. Quelle propriété renvoie la valeur 1,5 ?

Récapitulatif

Un TimeSpan est une durée. Créez-le avec new TimeSpan(...) ou avec des méthodes de fabrique comme FromMinutes.

Les propriétés des composantes, comme Hours, diffèrent des propriétés Total.... La soustraction de deux DateTimes produit un TimeSpan, et vous pouvez additionner, comparer et mettre en forme les durées.

Gratuit pour commencer

Apprends C# avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
93
Leçons
346

Questions Fréquemment Posées

La leçon « TimeSpan et durées » est-elle gratuite ?

Oui — le texte complet de « TimeSpan et durées » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C# Academy, passe à CoddyKit PRO. Le cours C# Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « TimeSpan et durées » ?

Mesurez des intervalles de temps. Tu pratiques C# Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer C# Academy ?

Aucune expérience préalable n'est requise. C# Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « TimeSpan et durées » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon C# Academy ?

Oui. Chaque leçon C# Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Créer des DateTimes
  2. Formater des dates
  3. TimeSpan et durées
  4. Calculs sur les dates
← Retour à C# Academy