Page d'accueil Description du projet
/******************************************
 *
 *   Cedric Pradalier   2001
 *   mail : http://cedric.pradalier.free.fr/mail.html
 *
 *****************************************/



#ifndef DATE_H
#define DATE_H
#include "objet.h"
#include <stdio.h>

// Year est-elle bissextile
int IsLeapYear(int year);

// definition des jours
typedef enum {Lundi=0,Mardi,Mercredi,Jeudi,Vendredi,Samedi,Dimanche,NonJour} Jours;


// donne la chaine correspondant a un jour
char * GetDayString(Jours j);
// identifie le jour correspondant a une chaine
Jours GetDayofS(char * S);


/***********************************************

  Classe implementant une date comprise entre 0
  et environ 31/12/2000000000

  operations de comparaison.
  fonctions permettant de connaitre le jour de la semaine
   correspondant a toute date
   
*************************************************/  
  
class CDate : public CObjet
{
public:
    char Day,Month;
    int Year;
    CDate() {};
    // constructeur de copie
    CDate(const CDate & other);
    CDate(char D,char M,int Y);
    // Extraction d'une date contenue dans un nombre en decimal :
    // sous la forme YYYYMMDD
    CDate(long l);

// Operateurs de comparaisons
    bool operator<(CDate D2) const;
    bool operator==(CDate D2) const;
    bool IsBetween(CDate D1,CDate D2) const;
    
    virtual ~CDate() {};
    
// Primitive d'I/O
    virtual void Print();
    /* lit la date dans fp et renvoie true 
       si la date est valide. Hypothese : 
       la prochaine sequence de fp est bien une date
       au format DD/MM/YYYY
     */
    bool Read(FILE * fp);

    // renvoie le numero du jour dans l'annee
    int GetDayinYear() const;
    // renvoie le Jour de la semaine correspondant
    // a la date.
    Jours GetDayinWeek() const;
};


#endif // DATE_H