Page d'Accueil

Opérations sur les dates

 

L'année bissextile

Une des opérations effectuées sur des valeurs de date est de découvrir si la valeur année d'une date est une année bissextile. Heureusement, la méthode statique IsLeapYear () de la structure DateTime peut être utilisée pour effectuer cette opération. La syntaxe de cette fonction est :

public static bool IsLeapYear(int year);

Cette méthode prend un argument de nombre entier et l'examine. Si l'argument, qui doit être un nombre valide d'année, est une année bissextile, la méthode retourne vrais ; autrement, elle renverrait faux. Voici deux exemples :

using System;

namespace DateAndTime
{
    class Program
    {
        static int Main()
        {
            DateTime date = new DateTime(1988, 10, 6);
            Console.WriteLine("{0} was a leap year: {1}",
                              date.Year, DateTime.IsLeapYear(date.Year));

            date = new DateTime(1990, 8, 12);
            Console.WriteLine("{0} was a leap year: {1}",
                              date.Year, DateTime.IsLeapYear(date.Year));

            return 0;
        }
    }
}

Ceci produirait :

1988 was a leap year: True
1990 was a leap year: False
Press any key to continue . . .

Le jour de la semaine

La structure DateTime est équipée d'une propriété qui peut être utilisée pour rechercher le jour de la semaine pour une date donnée. La propriété est appelée DayOfWeek. Pour obtenir le jour de la semaine, accéder à la propriété de DayOfWeek de votre valeur ou variable DateTime. Les valeurs sont stockées dans l'énumération de DayOfWeek. Voici un exemple :

using System;

namespace DateAndTime
{
    class Program
    {
        static int Main()
        {
            DateTime date = new DateTime(1988, 10, 6);

            Console.WriteLine("Day of the week: {0}", date.DayOfWeek);

            return 0;
        }
    }
}

Ceci produirait :

Day of the week: Thursday
Press any key to continue . . .

L'espace de temps

Les dates sont les quelques valeurs les plus importantes du logiciel d'exploitation et beaucoup d'applications ont besoin d'elles pour effectuer leurs opérations de routine. Les opérations courantes incluent l'ajout des jours à une date, la soustraction des mois d'une date, l'ajout des années, la comparaison des dates pour découvrir si une se produit avant l'autre, ou découvrir si la paie tombe un jour férié, etc. Pour effectuer certaines de ces opérations, une unité appelée un intervalle est considérée comme élément d'une date. Un intervalle de date est le nombre de jours, de mois, ou d'années qui se sont écoulées, ou s'écoulerait, d'une date de départ à une autre date de fin. Une fois que vous avez indiqué cet intervalle, vous pouvez alors l'appliquer à une date avec l'opération de votre choix.

Pour soutenir la capacité d'effectuer des opérations sur les dates, .NET Framework fournit la structure TimeSpan. Cette structure est équipée des divers membres qui seraient appliqués sur la structure TimeSpan. La valeur produite par cette structure est alors appliquée à un objet DateTime. Pour créer un intervalle de date, déclarez une variable TimeSpan et l'initialiser avec les valeurs désirées. Pour rendre ceci possible, la structure TimeSpan est équipée de divers constructeurs.

Ajouter et/ou soustraire des jours

Avec la structure DateTime, vous pouvez ajouter quelques jours à une date existante ou soustraire quelques jours d'une valeur de date. Pour soutenir ceci, la structure DateTime est équipée de la méthode AddDays (). Sa syntaxe est:

public DateTime AddDays(int days);

Voici un exemple d'appel de cette méthode :

using System;

namespace DateAndTime
{
    class Program
    {
        static int Main()
        {
            DateTime startDate = new DateTime(1988, 10, 6);
            Console.WriteLine("Starting Date: {0}", startDate);
            
            // This will be used to add 8 days to the previous date
            DateTime endDate = startDate.AddDays(8);
            // And display it
            Console.WriteLine("Ending Date:   {0}\n", endDate);

            return 0;
        }
    }
}

Ceci produirait :

Starting Date: 10/6/1988 12:00:00 AM
Ending Date:   10/14/1988 12:00:00 AM

Press any key to continue . . .

Si vous passez une valeur positive à la méthode DateTime.AddDays (), un certain nombre de jours est ajoutés à la variable DateTime. Si vous voulez soustraire quelques jours d'une date, passer l'argument avec une valeur négative. Cette méthode peut figurer l'année avant, le mois avant, le jour avant, le jour après, le mois après, et l'année après la date indiquée.

Un des constructeurs de la structure de TimeSpan prend quatre arguments. Sa syntaxe

public TimeSpan(int days, int hours, int minutes, int seconds);

Le premier argument de ce constructeur représente le nombre de jours. Si vous projetez ajouter un certain nombre de jours à une date, passer un nombre entier positif comme premier argument. Si vous voulez soustraire une date, passer une valeur négative. Si vous voulez ajouter seulement un certain nombre de jours, passer seulement cet argument.

Après avoir créé un objet TimeSpan, vous pouvez faire appel à la méthode Add () de la structure DateTime  d'une valeur de date. Ceci produirait un nouvel objet DateTime qui est la valeur résultante. Voici les exemples :

using System;

namespace DateAndTime
{
    class Program
    {
        static int Main()
        {
            DateTime startDate = new DateTime(1988, 10, 6);
            Console.WriteLine("Starting Date: {0}\n", startDate);
            
            // This will be used to add 172 days to the previous date
            TimeSpan ts = new TimeSpan(172, 0, 0, 0);
            // Pass the TimeSpan object to the date
            DateTime endDate = startDate.Add(ts);
            // And display it
            Console.WriteLine("Ending Date:   {0}\n", endDate);

            // Subtract 10 days to the previous date
            ts = new TimeSpan(-10, 0, 0, 0);
            // Pass the TimeSpan object to the date
            endDate = startDate.Add(ts);
            // And display it
            Console.WriteLine("Ending Date:   {0}\n", endDate);

            return 0;
        }
    }
}

Ceci produirait :

Starting Date: 10/6/1988 12:00:00 AM

Ending Date:   3/27/1989 12:00:00 AM

Ending Date:   9/26/1988 12:00:00 AM

Press any key to continue . . .

Notez que, en ajoutant ou en soustrayant les jours, le compilateur peut figurer le jour précédent, le mois précédent, l'année précédente, le jour suivant, le mois suivant, ou l'année suivante.

Ajouter ou soustraire des mois à une date

Pour ajouter un certain nombre de mois à une date, la classe DateTime est équipée d'une méthode appelée AddMonths (). Sa syntaxe est :

public DateTime AddMonths(int months);

Cette méthode prend un argument comme le nombre de mois à ajouter ou à soustraire. Si vous passez l'argument avec une valeur positive, les mois sont ajoutés à la date. Si vous passez une valeur négative, le nombre de mois est soustrait de la date.

Ajouter ou soustraire des années à une date

Pour avoir la date de quelques années avant ou après une date connue, vous pouvez ajouter des années à ou soustraire les années de, une date connue. Pour soutenir cette opération, la classe DateTime fournit une méthode appelée AddYears (). Sa syntaxe est :

public DateTime AddYears(int years);

L'argument à passer à la méthode est le nombre d'années. Une valeur positive (ou une valeur négative) ajoute (ou soustrait) le nombre d'années à (ou de) la date.

Opérations logiques des dates

Utilisant les opérateurs logiques que nous avons passés en revue pour les types primitifs, vous pouvez comparer les valeurs des dates pour l'égalité, les différences, plus petites ou plus grandes valeurs. Pour soutenir ces opérations, la structure DateTime a les opérateurs logiques configurés.

Pour comparer deux dates, appliquez l'opérateur booléen désiré le même jour que vous voulez deux variables des types primitifs. Voici un exemple :

using System;

namespace DateAndTime
{
    class Program
    {
        static int Main()
        {
            DateTime startDate = new DateTime(1988, 10, 6);
            Console.WriteLine("Starting Date: {0}", startDate);
            
            // This will be used to add 8 days to the previous date
            DateTime endDate = startDate.AddDays(8);
            // And display it
            Console.WriteLine("Ending Date:   {0}\n", endDate);

            if (startDate < endDate)
                Console.WriteLine("{0} Occurs Before {1}", startDate, endDate);

            return 0;
        }
    }
}

Ceci produirait :

Starting Date: 10/6/1988 12:00:00 AM

Ending Date:   10/14/1988 12:00:00 AM

10/6/1988 12:00:00 AM Occurs Before 10/14/1988 12:00:00 AM
Press any key to continue . . .
  

Précédent Copyright © 2007-2008, Yevol Suivant