Re: [ROOT] Time Graphs. Need for another Date class in ROOT?

From: Fons Rademakers (Fons.Rademakers@cern.ch)
Date: Tue May 23 2000 - 14:42:58 MEST


Hi Eddy,

  when you think your classes are fully debugged and properly commented,
we would be happy to include them in ROOT. 

Cheers, Fons.



Eddy Offermann wrote:
> 
> Hi Steve,
> 
> The class in my little example was to convert between dates given in
> mm/dd/yy or mm/dd/yyyy format and business days (skipping saturdays and sundays).
> Its use is probably only for the financial world, maybe interesting to incorporate
> in a more general date time class. Its layout is as follows:
> 
> #ifndef ROOT_DATE
> #define ROOT_DATE
> 
> //////////////////////////////////////////////////////////////////////////
> //                                                                      //
> // TSDate                                                               //
> //                                                                      //
> // Class implementing interface to convert between calender             //
> //  and bussines days                                                   //
> //                                                                      //
> //////////////////////////////////////////////////////////////////////////
> 
> #include <stdlib.h>
> 
> #include "TObject.h"
> #include "TMath.h"
> #include "TString.h"
> 
> class TSDate : public TObject
> {
> 
> protected:
>   Long_t fBusinessDate; // business date number
> 
>   void    Copy(TObject& obj);
> 
> private:
>   Long_t  JulianDateToBusinessDate(Long_t julianDate);
>   Long_t  BusinessDateToJulianDate(Long_t businessDate);
>   Long_t  StringToBusinessDate(const Char_t string[]);
>   Long_t  StringToJulianDate(const Char_t string[]);
>   Char_t* JulianDateToString(Long_t julianDate);
>   Char_t* BusinessDateToString(Long_t businessDate);
>   Int_t   FromString(const Char_t *string, Int_t &month, Int_t &day, Int_t &year);
> 
> public:
>   TSDate();
>   TSDate(Long_t dayNr);
>   TSDate(const Char_t* dayString);
>   TSDate(const TSDate& date);
>   virtual ~TSDate();
> 
>   void    SetDate         (Long_t dayNr);
>   void    SetDate         (const Char_t* dayString);
>   Long_t  const GetDateNr () const { return fBusinessDate; }
>   Int_t   const GetYear   ();
>   Int_t   const GetMonth  ();
>   Int_t   const GetDay    ();
>   void    GetDateSpan     (Long_t dayNr, Int_t &dMonth, Int_t &dDay, Int_t &dYear);
>   void    GetDateSpan     (const Char_t* dateString, Int_t &dMonth, Int_t &dDay, Int_t &dYear);
>   const Char_t*
>           GetDateString   ();
> 
>           TSDate& operator=(const TSDate &date);
> 
>   friend  TSDate  MinDate(TSDate &date1, TSDate &date2);
>   friend  TSDate  MaxDate(TSDate &date1, TSDate &date2);
> 
>   ClassDef(TSDate,0)  //Conversion from and to bussiness dates
> };
> 
> #endif
> 
> Eddy

-- 
Org:    CERN, European Laboratory for Particle Physics.
Mail:   1211 Geneve 23, Switzerland
E-Mail: Fons.Rademakers@cern.ch              Phone: +41 22 7679248
WWW:    http://root.cern.ch/~rdm/            Fax:   +41 22 7677910



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:25 MET