Aggiunta la possibilita' di trattare date informato ANSI (YYYYMMDD).

git-svn-id: svn://10.65.10.50/trunk@47 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1994-08-22 11:17:02 +00:00
parent 94b43f2779
commit a5c5edb20a

View File

@ -1,91 +1,92 @@
#ifndef __DATE_H #ifndef __DATE_H
#define __DATE_H #define __DATE_H
#ifndef __OBJECT_H #ifndef __OBJECT_H
#include <object.h> #include <object.h>
#endif #endif
// @C // @C
// Classe TDate : TObject // Classe TDate : TObject
// @END // @END
#define TODAY -1 #define TODAY -1
#define ANSI -1
class TDate : TObject
{ class TDate : TObject
// @DPRIV {
long _val; // Valore data in formato packed // @DPRIV
long _val; // Valore data in formato packed
// @DES Operatori esterni < > <= >= == !=
// @FPUB // @DES Operatori esterni < > <= >= == !=
friend bool operator <(const TDate& a, const TDate& b); // @FPUB
friend bool operator >(const TDate& a, const TDate& b); friend bool operator <(const TDate& a, const TDate& b);
friend bool operator <=(const TDate& a, const TDate& b); friend bool operator >(const TDate& a, const TDate& b);
friend bool operator >=(const TDate& a, const TDate& b); friend bool operator <=(const TDate& a, const TDate& b);
friend bool operator ==(const TDate& a, const TDate& b); friend bool operator >=(const TDate& a, const TDate& b);
friend bool operator !=(const TDate& a, const TDate& b); friend bool operator ==(const TDate& a, const TDate& b);
friend bool operator !=(const TDate& a, const TDate& b);
public:
// @FPUB public:
char* string(int yeardgts = 4, char sep = '-') const ; // @FPUB
// @DES Ritorna la data in formato di stringa char* string(int yeardgts = 4, char sep = '-') const ;
// @FPUB // @DES Ritorna la data in formato di stringa (anche in formato ANSI)
int day() const ; // Ritorna il giorno // @FPUB
int month() const ; // Ritorna il mese int day() const ; // Ritorna il giorno
int year() const ; // Ritorna l'anno int month() const ; // Ritorna il mese
void addmonth(int nmonth = 1); // Aggiunge dei mesi int year() const ; // Ritorna l'anno
void addyear(int nyear = 1); // Aggiunge degli anni void addmonth(int nmonth = 1); // Aggiunge dei mesi
bool ok() const; // Vero se la data e' corretta void addyear(int nyear = 1); // Aggiunge degli anni
static bool isdate(const char*); // Vero se la stringa passata e' una data corretta bool ok() const; // Vero se la data e' corretta
static bool isdate(const char*); // Vero se la stringa passata e' una data corretta
// @DES Ridefiniti gli operatori: += -= ++ -- >> e <<
// @FPUB // @DES Ridefiniti gli operatori: += -= ++ -- >> e <<
TDate& operator +=(const long nday) { _val += nday; return *this; } // @FPUB
TDate& operator -=(const long nday) { _val -= nday; return *this; } TDate& operator +=(const long nday) { _val += nday; return *this; }
TDate& operator ++() { _val++; return *this; } TDate& operator -=(const long nday) { _val -= nday; return *this; }
TDate& operator --() { _val--; return *this; } TDate& operator ++() { _val++; return *this; }
TDate& operator --() { _val--; return *this; }
void print_on(ostream& out) const ;
void read_from(istream& in) ; void print_on(ostream& out) const ;
void read_from(istream& in) ;
operator long() const { return _val; }
operator long() const { return _val; }
operator long*() { return &_val;}
operator long*() { return &_val;}
operator const char*() const ;
TDate& operator =(const char* s); operator const char*() const ;
TDate& operator =(long val) { _val = val; return *this;} TDate& operator =(const char* s);
TDate& operator =(const TDate& d) { _val = d._val; return *this;} TDate& operator =(long val) { _val = val; return *this;}
TDate& operator =(const TDate& d) { _val = d._val; return *this;}
TDate(const TDate& d);
TDate(long l); TDate(const TDate& d);
TDate(const char* s); TDate(long l);
TDate(int day = 0, int month = 0, int year = 0); TDate(const char* s);
}; TDate(int day = 0, int month = 0, int year = 0);
};
// @FPUB
TDate& operator +(const TDate& a, long nday) ; // @FPUB
TDate& operator +(const long nday, const TDate& b) ; TDate& operator +(const TDate& a, long nday) ;
TDate& operator -(const TDate& a, long nday) ; TDate& operator +(const long nday, const TDate& b) ;
inline bool operator <(const TDate& a, const TDate& b) { return a._val < b._val;} TDate& operator -(const TDate& a, long nday) ;
inline bool operator >(const TDate& a, const TDate& b) { return a._val > b._val;} inline bool operator <(const TDate& a, const TDate& b) { return a._val < b._val;}
inline bool operator <=(const TDate& a, const TDate& b) { return a._val <= b._val;} inline bool operator >(const TDate& a, const TDate& b) { return a._val > b._val;}
inline bool operator >=(const TDate& a, const TDate& b) { return a._val >= b._val;} inline bool operator <=(const TDate& a, const TDate& b) { return a._val <= b._val;}
inline bool operator ==(const TDate& a, const TDate& b) { return a._val == b._val;} inline bool operator >=(const TDate& a, const TDate& b) { return a._val >= b._val;}
inline bool operator !=(const TDate& a, const TDate& b) { return a._val != b._val;} inline bool operator ==(const TDate& a, const TDate& b) { return a._val == b._val;}
void swap(TDate& a, TDate& b) ; // Scambia la data a con la data b inline bool operator !=(const TDate& a, const TDate& b) { return a._val != b._val;}
const TDate& fnc_min(const TDate& a, const TDate& b) ; // Ritorna la data piu' piccola tra a e b void swap(TDate& a, TDate& b) ; // Scambia la data a con la data b
const TDate& fnc_max(const TDate& a, const TDate& b) ; // Ritorna la data piu' grande tra a e b const TDate& fnc_min(const TDate& a, const TDate& b) ; // Ritorna la data piu' piccola tra a e b
// @END const TDate& fnc_max(const TDate& a, const TDate& b) ; // Ritorna la data piu' grande tra a e b
// @END
const char* itom(byte month); // Ritorna il nome del mese (1-12)
const char* itow(byte dayofweek); // Ritorna il nome del giorno (1-7) const char* itom(byte month); // Ritorna il nome del mese (1-12)
const char* itow(byte dayofweek); // Ritorna il nome del giorno (1-7)
// @DPUB
extern TDate nodate, botime, eotime; // @DPUB
// @END extern TDate nodate, botime, eotime;
// @END
#endif // __DATE_H
#endif // __DATE_H