Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

Vous n'avez pas encore de compte Developpez.com ? L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Developpez.com

C++

Choisissez la catégorie, puis la rubrique :

logo
Sommaire > Gestion du temps > Opérations sur les dates/heures
        Comment additionner ou soustraire des jours à une date ?
        Comment calculer le nombre de jours entre deux dates ?
        Comment calculer le numéro de jour dans l'année d'une date ?
        Comment calculer le numéro de semaine dans l'année d'une date ?
        Comment calculer le jour de la semaine pour une date ?



Comment additionner ou soustraire des jours à une date ?
Créé le 27/10/2004[haut]
auteurs : Psl, Ricky81
Pour ajouter ou soustraire un nombre de jours à une date, on peut utiliser plusieurs méthodes :

En utilisant directement la date :

TDateTime date1;
int nbJours;

date1 = EncodeDate(2002, 11, 1);
date1 = date1 + nbJours;
La variable nbJours peut bien évidemment être positive ou négative.

En utilisant des fonctions (n'oubliez pas d'inclure le fichier DateUtils.hpp) :

TDateTime date1;
int nbJours;

date1 = EncodeDate(2002, 11, 1);
date1 = IncDay(date1, nbJours);
Ici aussi, la variable nbJours peut être positive ou négative.
On peut également avoir recours aux fonctions IncWeek(), IncMonth(), et IncYear().

En utilisant le jour Julien (n'oubliez pas d'inclure le fichier DateUtils.hpp) :

TDateTime date1;
Word Annee, Mois, Jour, Heure, Minute, Seconde, milliSec;
double jourJul;

date1 = EncodeDateTime(annee, mois, jour, heure, minute, seconde, milliSec);
jourJul = DateTimeToJulianDate(date1) + nbJours;
date1 = JulianDateToDateTime(date1);
nbJours peut être positif ou négatif, mais il peut également être un réel pour permettre d'agir également sur l'heure.

Remarque : La variable jourJul est entière lorsque l'heure est à 12h00'00'.


Comment calculer le nombre de jours entre deux dates ?
Créé le 27/10/2004[haut]
auteurs : Psl, Ricky81
Pour calculer la différence entre deux dates, on peut utiliser plusieurs méthodes :

En utilisant directement les dates :

TDateTime date1, date2;
// initialisation avec EncodeDate par exemple

double diff = date2 - date1;
En utilisant des fonctions (n'oubliez pas d'inclure le fichier DateUtils.hpp) :

TDateTime date1, date2;
// initialisation avec EncodeDate par exemple

int  nbJours = DaysBetween(date1, date2);
nbJours correspond au nombre entier de jours séparant les 2 dates.

En utilisant le jour Julien (n'oubliez pas d'inclure le fichier DateUtils.hpp) :

TDateTime date1, date2;
// initialisation avec EncodeDate par exemple

double diff = DateTimeToJulianDate(date2)-DateTimeToJulianDate(date1); 
Dans les exemples 1 et 3, diff est bien plus précis qu'une différence de date puisqu'il intègre également l'heure. Ainsi, sur l'exemple suivant, on obtiendra une valeur légèrement inférieure à 3 :

TDateTime date1, date2;

date1 = EncodeDateTime(2002, 1, 1, 1, 1, 1, 2);
date2 = EncodeDateTime(2002, 1, 4, 1, 1, 1, 1);
double diff = date2 - date1;

Comment calculer le numéro de jour dans l'année d'une date ?
Créé le 27/10/2004[haut]
auteurs : Psl, Ricky81
Le rang du jour de l'année est renvoyé par la fonction DayOfTheYear().
Pour l'utiliser, il vous faut inclure "DateUtils.hpp"

TDateTime date1;
int numeroJ;

date1 = Now();
numeroJ = DayOfTheYear(date1);

Comment calculer le numéro de semaine dans l'année d'une date ?
Créé le 27/10/2004[haut]
auteurs : Psl, Ricky81
Le numéro de la semaine dans l'année est renvoyé par la fonction WeekOfTheYear().
Pour l'utiliser, il vous faut inclure "DateUtils.hpp"

TDateTime date1;
int numeroS;

date1 = Now();
numeroS = WeekOfTheYear(date1);

Comment calculer le jour de la semaine pour une date ?
Créé le 27/10/2004[haut]
auteurs : Psl, Ricky81
Le numéro de la semaine est renvoyé par la fonction DayOfTheWeek().
Pour l'utiliser, il vous faut inclure "DateUtils.hpp"

TDateTime date1;
int jourSemaine;

date1 = Now();
jourSemaine = DayOfTheWeek(date1);


Consultez les autres F.A.Q.


Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Contacter le responsable de la rubrique C++

Partenaire : Hébergement Web