Date et heure
Le langage de programmation C# inclut la structure DateTime pour travailler avec les dates et les heures. Pour travailler avec la date et l'heure en C#, créez un objet de la structure DateTime à l'aide du mot clef new. Le code suivant crée un objet DateTime avec la valeur par défaut :
La valeur par défaut et la valeur la plus basse d'un objet DateTime est le 1er janvier 0001 00:00:00 (minuit). La valeur maximale peut être le 31 décembre 9999 23:59:59. Utilisez différents constructeurs de la structure DateTime pour affecter une valeur initiale à un objet DateTime.
- using System;
-
- public class Program {
- public static void Main() {
- // attribue la valeur par défaut 01/01/0001 00:00:00
- DateTime dt1 = new DateTime();
- Console.WriteLine(dt1);
- // attribuer l'année, le mois, le jour
- DateTime dt2 = new DateTime(2015, 12, 31);
- Console.WriteLine(dt2);
- // attribuer l'année, le mois, le jour, l'heure, la minute, les secondes
- DateTime dt3 = new DateTime(2015, 12, 31, 5, 10, 20);
- Console.WriteLine(dt3);
- // attribuer l'année, le mois, le jour, l'heure, la minute, les secondes, le fuseau horaire UTC
- DateTime dt4 = new DateTime(2015, 12, 31, 5, 10, 20, DateTimeKind.Utc);
- Console.WriteLine(dt4);
- }
- }
Dans l'exemple ci-dessus, nous avons spécifié une année, un mois et un jour dans le constructeur. L'année peut être comprise entre 0001 et 9999, le mois peut être compris entre 1 et 12 et le jour peut être compris entre 1 et 31. La définition de toute autre valeur en dehors de ces plages entraînera une exception d'exécution. Utilisez différents constructeurs DateTime pour définir la date, l'heure, le fuseau horaire, le calendrier et la culture.
Tics
Un tic est une date et une heure exprimées en nombre d'intervalles de 100 nanosecondes s'étant écoulés depuis le 1er janvier 0001, à 00:00:00.000 dans le calendrier grégorien. Ce qui suit initialise un objet DateTime avec le nombre de graduations :
Champs statiques DateTime
La structure DateTime inclut des champs, des propriétés et des méthodes statiques. L'exemple suivant illustre des champs et propriétés statiques importants :
- using System;
-
- public class Program {
- public static void Main() {
- DateTime currentDateTime = DateTime.Now;
- DateTime todaysDate = DateTime.Today;
- DateTime currentDateTimeUTC = DateTime.UtcNow;
- DateTime maxDateTimeValue = DateTime.MaxValue;
- DateTime minDateTimeValue = DateTime.MinValue;
- Console.WriteLine($"DateTime courante : {currentDateTime}");
- Console.WriteLine($"DateTime d'aujourd'hui : {todaysDate}");
- Console.WriteLine($"Fuseau horaire UTC de DateTime UTC courante : {currentDateTimeUTC}");
- Console.WriteLine($"Valeur maximal de DateTime : {maxDateTimeValue}");
- Console.WriteLine($"Valeur minimal de DateTime : {minDateTimeValue}");
-
- }
- }
TimeSpan
Le TimeSpan est une structure utilisée pour représenter le temps en jours, heures, minutes, secondes et millisecondes :
Les opérateurs
La structure DateTime surcharge les opérateurs +, -, ==, !=, >, <, <=, >= pour faciliter l'addition, la soustraction et la comparaison de dates. Ceux-ci facilitent le travail avec les dates :
- using System;
-
- public class Program
- {
- public static void Main()
- {
- DateTime dt1 = new DateTime(2021, 12, 29);
- DateTime dt2 = new DateTime(2021, 12, 31, 5, 10, 20);
- TimeSpan time = new TimeSpan(10, 5, 25, 50);
- Console.WriteLine(dt2 + time);
- Console.WriteLine(dt2 - dt1);
- Console.WriteLine(dt1 == dt2);
- Console.WriteLine(dt1 != dt2);
- Console.WriteLine(dt1 > dt2);
- Console.WriteLine(dt1 < dt2);
- Console.WriteLine(dt1 >= dt2);
- Console.WriteLine(dt1 <= dt2);
- }
- }
Convertir la String en DateTime
Une chaîne de caractères de date et d'heure valide peut être convertie en un objet DateTime à l'aide des méthodes Parse(), ParseExact(), TryParse() et TryParseExact(). Les méthodes Parse() et ParseExact() lèveront une exception si la chaîne de caractères spécifiée n'est pas une représentation valide d'une date et d'une heure. Il est donc recommandé d'utiliser la méthode TryParse() ou TryParseExact() car elles renvoient false si une chaîne de caractères n'est pas valide :