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

From: Eddy Offermann (eddy@rentec.com)
Date: Fri May 19 2000 - 04:10:58 MEST


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



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