Travailler avec les dates et l'heure en C# : DateTime, TimeSpan et formatage

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction : Pourquoi travailler avec les dates en C# est important



Dans le développement logiciel moderne, travailler avec les dates et l'heure est l'une des tâches les plus fréquentes et critiques. Qu'il s'agisse de journalisation d'événements, de calcul de délais d'exécution, d'affichage d'actualités ou de création de rapports — une gestion précise et flexible des données temporelles est nécessaire partout. C# et la plateforme .NET offrent au développeur un ensemble d'outils puissant et intuitif à cet effet.



Dans cet article, nous allons détailler les principaux types pour travailler avec les dates et l'heure en C# : DateTime, TimeSpan et DateTimeOffset. Vous apprendrez à créer, modifier, formater et comparer des dates, ainsi qu'à travailler correctement avec les fuseaux horaires. Ce contenu sera utile aussi bien aux développeurs débutants qu'aux développeurs expérimentés souhaitant systématiser leurs connaissances.



Types de données principaux : DateTime, TimeSpan et DateTimeOffset



1. La structure DateTime



DateTime est le type principal pour représenter un instant dans le temps (date + heure). Il stocke des informations du 1er janvier de l'an 0001 au 31 décembre de l'an 9999 avec une précision de 100 nanosecondes (tic).



Création d'un objet DateTime :

// Date et heure actuellesDateTime now = DateTime.Now;// Date et heure actuelles en UTCDateTime utcNow = DateTime.UtcNow;// Date spécifiqueDateTime specificDate = new DateTime(2025, 3, 15);// Date et heure avec précision à la secondeDateTime specificDateTime = new DateTime(2025, 3, 15, 14, 30, 0);// Date d'aujourd'hui (heure = 00:00:00)DateTime today = DateTime.Today;


2. La structure TimeSpan



TimeSpan représente un intervalle de temps (une durée). Il n'est pas lié à une date spécifique, mais stocke une différence de temps : jours, heures, minutes, secondes et fractions de secondes.



Création et utilisation de TimeSpan :

// Création d'un intervalle : 2 jours, 5 heures, 30 minutesTimeSpan interval = new TimeSpan(2, 5, 30, 0);// Intervalle à partir d'heuresTimeSpan fromHours = TimeSpan.FromHours(48.5);// Différence entre deux datesDateTime start = new DateTime(2025, 1, 1);DateTime end = new DateTime(2025, 3, 15);TimeSpan difference = end - start;Console.WriteLine(difference.Days); // 73


3. La structure DateTimeOffset



DateTimeOffset est une alternative plus moderne à DateTime, qui, en plus de la date et de l'heure, stocke le décalage par rapport à UTC (par exemple, +03:00). Cela permet d'éviter les confusions avec les fuseaux horaires lors du transfert de données entre systèmes.



// Heure actuelle avec décalageDateTimeOffset localOffset = DateTimeOffset.Now;// Heure UTC avec décalage +00:00DateTimeOffset utcOffset = DateTimeOffset.UtcNow;// Création avec spécification du décalageDateTimeOffset specific = new DateTimeOffset(2025, 3, 15, 12, 0, 0, TimeSpan.FromHours(3));


Opérations principales : addition, soustraction et comparaison



Arithmétique avec DateTime et TimeSpan



L'un des principaux avantages de C# est l'arithmétique pratique des dates. Vous pouvez facilement ajouter ou soustraire des jours, des mois, des années, ainsi que travailler avec les heures et les minutes.



DateTime today = DateTime.Today;// Ajouter 10 joursDateTime futureDate = today.AddDays(10);// Ajouter 2 moisDateTime futureMonth = today.AddMonths(2);// Soustraire 1 anDateTime pastYear = today.AddYears(-1);// Ajouter 5 heures et 30 minutesDateTime precise = today.AddHours(5).AddMinutes(30);


Travail avec TimeSpan :

TimeSpan workDay = new TimeSpan(8, 0, 0); // 8 heuresTimeSpan breakTime = new TimeSpan(0, 45, 0); // 45 minutesTimeSpan totalWork = workDay + breakTime; // 8 heures 45 minutesTimeSpan remaining = workDay - breakTime; // 7 heures 15 minutes


Comparaison de dates



Pour comparer deux instants dans le temps, on utilise les opérateurs de comparaison standard :



Da                

Blogs

Book Recommendations