IRONSOFTWAREHOME
MISES À JOUR POUR LES DÉVELOPPEURS

C# Timespan Format (Comment ça fonctionne pour les développeurs)

Jacob Mellor, Directeur technique @ Team Iron
Jacob Mellor
Updated: 21 avril 2026

Dans le monde du développement rapide d'aujourd'hui, gérer les intervalles de temps est crucial pour de nombreuses applications, des systèmes de gestion de projet aux outils de suivi du temps. La structure TimeSpan en C# offre un moyen robuste de représenter les intervalles de temps, facilitant pour les développeurs les calculs et le formatage des données temporelles de manière efficace. Associer cela avec IronPDF, une bibliothèque de génération de PDF puissante pour .NET, permet la création de rapports dynamiques et visuellement attrayants basés sur des données temporelles.

Cet article va explorer les subtilités du formatage de TimeSpan en C#, illustrant comment il peut être intégré sans heurt avec IronPDF pour générer des rapports enrichissants. Que vous suiviez les heures de travail des employés ou mesuriez la durée des projets, ce guide offre des exemples pratiques pour améliorer vos capacités de reporting.

Understanding TimeSpan in C#

Qu'est-ce que TimeSpan en C# ?

La structure TimeSpan en C# représente un intervalle de temps et peut être utilisée pour mesurer les durées ou la différence entre deux valeurs de date et heure. C'est une structure polyvalente, permettant aux développeurs d'effectuer divers calculs liés au temps, tels que :

  • Calculer la durée des tâches.
  • Mesurer les différences de temps entre les événements.
  • Créer des minuteries pour la mesure des performances.

L'importance de TimeSpan réside dans sa capacité à simplifier et standardiser la gestion des intervalles de temps à travers les applications, facilitant la gestion des diverses tâches liées au temps.

Méthodes de base pour créer et utiliser TimeSpan

Créer un objet TimeSpan est simple, avec plusieurs méthodes disponibles, telles que :

  • TimeSpan.FromHours(double hours) : Crée un TimeSpan représentant le nombre d'heures spécifié.
  • TimeSpan.FromMinutes(double minutes) : Crée un TimeSpan représentant le nombre de minutes spécifié.
  • TimeSpan.FromSeconds(double seconds) : Crée un TimeSpan représentant le nombre de secondes spécifié.

Voici un exemple illustrant comment créer des instances TimeSpan et les utiliser dans des calculs :

// Creating TimeSpan instances
TimeSpan taskDuration = TimeSpan.FromHours(2.5); // 2 hours and 30 minutes
TimeSpan breakDuration = TimeSpan.FromMinutes(15); // 15 minutes
// Calculating total time spent
TimeSpan totalTime = taskDuration + breakDuration;
Console.WriteLine($"Total time spent: {totalTime}"); // Outputs: 02:45:00

Cela affiche la sortie suivante :

Format C# Timespan (Explication pour les développeurs) : Figure 1

Formatage de TimeSpan pour l'affichage

En ce qui concerne l'affichage des valeurs TimeSpan, C# offre plusieurs options de formatage. Les spécificateurs de sortie sont utilisés pour contrôler la manière dont les valeurs TimeSpan sont affichées lors de leur conversion en chaînes. Ces spécificateurs définissent le format de sortie des objets TimeSpan, aidant à personnaliser leur représentation dans le rapport PDF final. Les spécificateurs de format les plus couramment utilisés incluent :

  • "c" : Le format invariant (par exemple, 1.02:30:45 pour 1 jour, 2 heures, 30 minutes et 45 secondes).
  • "g" : Le spécificateur de format standard, qui exclut la partie jours si elle est nulle (par exemple, 02:30:45).
  • Formats personnalisés : Vous pouvez définir des formats personnalisés pour répondre à des besoins spécifiques, comme l'affichage des heures et des minutes uniquement ou des jours avec les heures.

Voici des exemples de formatage de TimeSpan pour sortie dans des rapports ou des journaux :

TimeSpan duration = new TimeSpan(1, 2, 30, 45); // 1 day, 2 hours, 30 minutes, 45 seconds
// Default "c" format string produces the output: 1.02:30:45
Console.WriteLine(duration.ToString("c"));
// Custom format "hh:mm:ss" outputs: 26:30:45
Console.WriteLine(duration.ToString(@"hh\:mm\:ss")); 
// Custom format with days, outputs: 1d 02h 30m
Console.WriteLine(duration.ToString(@"d'd 'hh'h 'mm'm '"));

Cet exemple affiche la sortie suivante :

Format C# Timespan (Explication pour les développeurs) : Figure 2

Utilisation de TimeSpan avec IronPDF pour la génération de PDF

Configurer IronPDF dans Votre Projet .NET

Pour commencer à utiliser IronPDF, vous devrez d'abord l'installer. S'il est déjà installé, vous pouvez passer à la section suivante, sinon, les étapes suivantes expliquent comment installer la bibliothèque IronPDF.

Via la console du gestionnaire de packages NuGet

Pour installer IronPDF en utilisant la console du gestionnaire de packages NuGet, ouvrez Visual Studio et accédez à la console du gestionnaire de packages. Ensuite, exécutez la commande suivante :

PM > Install-Package IronPdf

Via le gestionnaire de packages NuGet pour la solution

En ouvrant Visual Studio, allez dans "Outils -> Package Manager NuGet -> Gérer les packages NuGet pour la solution" et recherchez IronPDF. À partir de là, tout ce que vous avez à faire est de sélectionner votre projet et cliquer sur " Installer ", et IronPDF sera ajouté à votre projet.

Format C# Timespan (Explication pour les développeurs) : Figure 3

Une fois que vous avez installé IronPDF, tout ce dont vous avez besoin pour commencer à utiliser IronPDF est de la déclaration using correcte en haut de votre code :

using IronPdf;

Vous êtes maintenant prêt à commencer à utiliser IronPDF et TimeSpan pour des tâches de génération de PDF.

Générer des rapports basés sur le temps avec IronPDF

Une fois IronPDF configuré, vous pouvez utiliser les données TimeSpan pour générer des rapports PDF informatifs. Par exemple, considérez un scénario où vous devez générer des journaux de travail pour les employés. Vous pouvez utiliser les valeurs TimeSpan pour afficher efficacement les durées de tâche et les temps de pause.

Scénario d'exemple : Formatage des valeurs TimeSpan dans un rapport PDF

Voici comment utiliser les données TimeSpan dans un rapport PDF, y compris la génération d'un journal de travail simple :

using IronPdf;
public static void Main(string[] args)
{
    TimeSpan duration = new TimeSpan(9, 30, 25);
    var employees = new List<(string name, TimeSpan timeSpan)> {
    ("Jane Doe",  duration),
    ("John Doe", duration)
    };
    GenerateWorkLogReport(employees);
}
public static void GenerateWorkLogReport(List<(string Employee, TimeSpan Duration)> workLogs)
{
    ChromePdfRenderer renderer = new ChromePdfRenderer();
    var htmlContent = "<h1>Work Log Report</h1><table border='1'><tr><th>Employee</th><th>Duration</th></tr>";
    foreach (var log in workLogs)
    {
        htmlContent += $"<tr><td>{log.Employee}</td><td>{log.Duration.ToString(@"hh\:mm\:ss")}</td></tr>";
    }
    htmlContent += "</table>";
    var pdf = renderer.RenderHtmlAsPdf(htmlContent);
    pdf.SaveAs("WorkLogReport.pdf");
}

Format C# Timespan (Explication pour les développeurs) : Figure 4

Dans cet exemple, nous avons créé un tableau simple pour afficher les journaux de travail des employés. La méthode GenerateWorkLogReport génère un tableau HTML avec des valeurs TimeSpan formatées, qui est ensuite converti en document PDF. Nous utilisons la classe ChromePdfRenderer d'IronPDF pour gérer le rendu du contenu HTML en format PDF. PdfDocument est utilisé pour créer l'objet PDF utilisé pour gérer le PDF nouvellement créé et l'enregistrer.

Techniques avancées pour le formatage et l'utilisation de TimeSpan dans les rapports

Personnalisation de la sortie TimeSpan pour différents cas d'usage

La personnalisation de la sortie TimeSpan peut grandement améliorer la lisibilité de vos rapports. Par exemple, si vous avez seulement besoin d'afficher les heures et minutes, vous pouvez formater votre TimeSpan en conséquence. Dans cet exemple, nous reprendrons les mêmes données d'employés que nous avons créées dans l'exemple précédent, et formaterons TimeSpan pour n'afficher que les heures et minutes qu'ils ont travaillé. Les secondes ne sont pas nécessaires pour les enregistrements dans ce scénario et prennent simplement de l'espace supplémentaire, nous les formaterons donc hors de l'affichage :

using IronPdf;
class Program
{
    public static void Main(string[] args)
    {
        TimeSpan duration = new TimeSpan(9, 30, 25);
        var employees = new List<(string name, TimeSpan timeSpan)> {
        ("Jane Doe",  duration),
        ("John Doe", duration)
        };
        GenerateWorkLogReport(employees);
    }
    public static void GenerateWorkLogReport(List<(string Employee, TimeSpan Duration)> workLogs)
    {
        ChromePdfRenderer renderer = new ChromePdfRenderer();
        var htmlContent = "<h1>Work Log Report</h1><table border='1'><tr><th>Employee</th><th>Duration</th></tr>";
        foreach (var log in workLogs)
        {
            // Custom format string to format the TimeSpan value for display
            string formattedDuration = log.Duration.ToString(@"hh\:mm");
            htmlContent += $"<tr><td>{log.Employee}</td><td>{formattedDuration}</td></tr>";
        }
        htmlContent += "</table>";
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("WorkLogReport.pdf");
    }
}

Format C# Timespan (Explication pour les développeurs) : Figure 5

Dans cet exemple, ToString(@"hh\:mm") formate le TimeSpan en 09:30 (heures et minutes totales) en utilisant des chaînes de format personnalisées. En utilisant cela, vous pouvez vous assurer que le TimeSpan est affiché comme vous le souhaitez pour maintenir la lisibilité du document. Cela peut aussi être fait en sens inverse, en analysant une chaîne dans un TimeSpan. L'analyse convertit les chaînes d'entrée qui suivent un format spécifique (comme "hh:mm" ou "d.hh:mm") en un objet TimeSpan que C# peut manipuler de manière programmatique.

Gérer les grands intervalles de temps et le formatage pour la lisibilité

Lorsque vous traitez des valeurs TimeSpan plus importantes, il est important de les formater pour la lisibilité. Par exemple, vous pouvez convertir de longues durées dans un format plus compréhensible, tel que "3 jours, 5 heures" :

class Program
{
    public static void Main(string[] args)
    {
        // Sample data: List of employee names and their work durations (TimeSpan)
        var workLogs = new List<(string Employee, TimeSpan Duration)>
        {
            ("Alice", new TimeSpan(5, 30, 0)), // 5 hours, 30 minutes
            ("Bob", new TimeSpan(3, 15, 0)),   // 3 hours, 15 minutes
            ("Charlie", new TimeSpan(7, 45, 0)) // 7 hours, 45 minutes
        };
        // Create the HTML content for the PDF report
        string htmlContent = @"
            <h1>Work Log Report</h1>
            <table border='1' cellpadding='5' cellspacing='0'>
                <tr>
                    <th>Employee</th>
                    <th>Work Duration (hh:mm)</th>
                </tr>";
        // Loop through the work logs and add rows to the table
        foreach (var log in workLogs)
        {
            string formattedDuration = FormatLargeTimeSpan(log.Duration);  // Custom method to format large TimeSpan values
            htmlContent += $"<tr><td>{log.Employee}</td><td>{formattedDuration}</td></tr>";
        }
        // Close the HTML table
        htmlContent += "</table>";
        // Create a new HtmlToPdf renderer
        ChromePdfRenderer renderer = new ChromePdfRenderer();
        // Render the HTML content as a PDF
        PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF to a file
        pdf.SaveAs("WorkLogReport.pdf");
    }
    // Custom method to handle the formatting operation
    static string FormatLargeTimeSpan(TimeSpan timeSpan)
    {
        // Check if there are days in the TimeSpan and format accordingly
        if (timeSpan.TotalDays >= 1)
        {
            return string.Format("{0} days, {1} hours, {2} minutes",
                (int)timeSpan.TotalDays,
                timeSpan.Hours,
                timeSpan.Minutes);
        }
        else
        {
            // If the duration is less than a day, show only hours and minutes
            return string.Format("{0} hours, {1} minutes", timeSpan.Hours, timeSpan.Minutes);
        }
    }
}

Format C# Timespan (Explication pour les développeurs) : Figure 6

Pour cet exemple, la méthode personnalisée FormatLargeTimeSpan convertit les valeurs TimeSpan importantes en formats facilement lisibles, tels que "6 jours, 5 heures, 30 minutes." Elle vérifie si la valeur TimeSpan inclut les jours et formate la sortie en conséquence, en utilisant des méthodes qui prennent en charge le formatage composite.

  • Si la durée totale dépasse 24 heures, les jours sont extraits et affichés avec les heures et minutes restantes.
  • Pour les intervalles de moins d'une journée, seules les heures et minutes sont affichées.

Pourquoi choisir IronPDF pour la génération de PDF basée sur TimeSpan ?

Principaux avantages d'IronPDF pour les applications de reporting

IronPDF se distingue par ses fonctionnalités robustes pour générer des PDF dynamiques basés sur des données de chaîne, de temps et HTML. Avec IronPDF, vos tâches liées aux PDF deviendront un jeu d'enfant à gérer. De la génération de PDF de base au chiffrement de PDF sécurisé, IronPDF vous couvre. Certains avantages clés incluent :

  • Conversion HTML vers PDF : Convertissez facilement votre contenu HTML en PDF tout en conservant la mise en page et le design. IronPDF peut également gérer la conversion de nombreux autres types de fichiers en PDF, y compris DOCX, image, URL, et ASPX.
  • Options de personnalisation : Adaptez vos rapports à vos besoins spécifiques grâce à des modèles et une mise en forme personnalisés, donnez à vos fichiers PDF des en-têtes et des pieds de page professionnels, une table des matières ou même des arrière-plans personnalisés.
  • PDF d'une précision pixel parfaite : Générez des documents PDF de haute qualité, visuellement cohérents avec votre image de marque, grâce à la prise en charge étendue des normes web modernes par IronPDF ; même les PDF générés à partir de contenu web seront toujours d'une précision pixel parfaite.

Intégration transparente avec .NET et formatage TimeSpan

IronPDF s'intègre facilement aux applications .NET, permettant aux développeurs d'exploiter efficacement la structure TimeSpan. Avec IronPDF, vous pouvez générer des rapports professionnels incluant des données temporelles formatées avec un minimum d'effort, rendant votre processus de reporting efficace et simple.

Conclusion

Dans cet article, nous avons exploré comment formater et manipuler les valeurs TimeSpan en C# et les intégrer sans heurt dans IronPDF pour générer des rapports dynamiques basés sur le temps. La structure de format de TimeSpan en C# est un outil essentiel pour représenter des intervalles de temps, tels que des durées de projet, des journaux de travail, et des temps d'achèvement des tâches. Que vous traitiez des périodes courtes ou des intervalles importants qui s'étendent sur plusieurs jours, heures et minutes, C# offre des options de formatage flexibles pour présenter ces données dans un format compréhensible. Passer à des exemples plus avancés pourrait inclure suivre les conventions de formatage pour les cultures, prendre des entrées de temps, analyser des chaînes en un TimeSpan, et ainsi de suite.

IronPDF excelle dans la conversion de HTML en PDF avec précision, ce qui en fait l'outil idéal pour générer des rapports à partir d'applications basées sur les données. Son intégration avec C# facilite l'incorporation de structures complexes comme TimeSpan dans des PDF de haute qualité.

Maintenant que vous comprenez comment formater les valeurs TimeSpan et les intégrer dans des rapports PDF avec IronPDF, il est temps de passer à l'étape suivante. Téléchargez un essai gratuit d'IronPDF et explorez son plein potentiel dans la génération de rapports dynamiques et basés sur les données pour vos projets. Avec IronPDF, vous pouvez transformer vos données basées sur le temps en documents polis et professionnels avec un minimum d'effort.

Jacob Mellor, Directeur technique @ Team Iron
Directeur technique

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, la transformant aux côtés du PDG Cameron Rimington en une entreprise de plus de 50 personnes au service de la NASA, de Tesla et d'agences gouvernementales mondiales.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

OR
bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez « IronPDF »
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.9

ou téléchargez l'installateur Windows ici.

  1. Téléchargez et décompressez IronPDF à un emplacement tel que ~/Libs dans votre répertoire de solution
  2. Dans l'explorateur de solutions Visual Studio, faites un clic droit sur Références. Sélectionnez Parcourir, « IronPDF.dll »

Licences à partir de 749 $