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

From: Victor Perevoztchikov (perev@bnl.gov)
Date: Fri May 19 2000 - 16:33:32 MEST


Hi Eddy,

>   Long_t  JulianDateToBusinessDate(Long_t julianDate);

probably not very good name. Julian calendar still used only by Russian and Greek
orthodox cherch. You probably mean Gregorian calendar, by the name of pop Gregory who
changed Julian calender (13 day difference)

Victor

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

-- 
Victor M. Perevoztchikov   perev@bnl.gov  perev@vxcern.cern.ch       
Brookhaven National Laboratory MS 510A PO Box 5000 Upton NY 11973-5000
tel office : 631-344-7894; fax 631-344-4206; home 631-345-2690



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