KaliVeda
Toolkit for HIC analysis
KVDatime.h
1 /*******************************************************************************
2 $Id: KVDatime.h,v 1.4 2008/04/10 15:43:45 franklan Exp $
3 $Revision: 1.4 $
4 $Date: 2008/04/10 15:43:45 $
5 $Author: franklan $
6 *******************************************************************************/
7 
8 #ifndef __KVDATIME_H
9 #define __KVDATIME_H
10 
11 #include "TDatime.h"
12 #include "TString.h"
13 #include <string>
14 #include <vector>
15 #include <unordered_map>
16 #include <optional>
34 class KVDatime: public TDatime
35 {
36  static const std::vector<std::string> fNumToMonth;
37  static std::unordered_map<std::string,int> fMonthToNum;
39 
40  void init_month_map();
41  std::optional<int> get_month_from_name(const char*);
42 
43 public:
44 
54  };
55 
56  KVDatime();
57  KVDatime(const Char_t* DateString, EKVDateFormat f = kGANACQ);
58  KVDatime(const KVDatime& d);
59  KVDatime(const TDatime& d);
60  KVDatime(UInt_t tloc, Bool_t dosDate = kFALSE);
61  KVDatime(Int_t date, Int_t time);
62  KVDatime(Int_t year, Int_t month, Int_t day,
63  Int_t hour, Int_t min, Int_t sec);
64  KVDatime& operator=(const KVDatime&);
65 
66  void SetGanacqDate(const Char_t* GanacqDateString);
67  void SetGanacq2010Date(const Char_t* GanacqDateString);
68  void SetGanacqNarvalDate(const Char_t* GanacqDateString);
69  const Char_t* AsGanacqDateString() const;
70  const Char_t* AsDMYDateString() const;
71  void SetSQLDate(const Char_t* SQLDateString);
72  void SetSRBDate(const Char_t* SRBDateString);
73  void SetIRODSDate(const Char_t* IRODSDateString);
74  void SetDMYDate(const Char_t* DMYString);
75 
76  const Char_t* String(EKVDateFormat fmt = kCTIME);
77 
78  static Bool_t IsSQLFormat(const Char_t* date);
79  static Bool_t IsGANACQFormat(const Char_t* date);
80  static Bool_t IsGANACQ2010Format(const Char_t* date);
81  static Bool_t IsGANACQNarvalFormat(const Char_t* date);
82  static Bool_t IsSRBFormat(const Char_t* date);
83  static Bool_t IsIRODSFormat(const Char_t* date);
84 
85  static const Char_t* Month(Int_t m);
86  Double_t GetNumberOfSeconds(Int_t ref_year = 0);
88 
89  ClassDef(KVDatime, 0) //Extension of TDatime class
90 };
91 
92 #endif
int Int_t
unsigned int UInt_t
bool Bool_t
char Char_t
double Double_t
#define ClassDef(name, id)
Extension of TDatime to handle various useful date formats.
Definition: KVDatime.h:35
static const Char_t * Month(Int_t m)
Definition: KVDatime.cpp:543
Double_t GetNumberOfSeconds(Int_t ref_year=0)
Definition: KVDatime.cpp:552
void SetDMYDate(const Char_t *DMYString)
Set date from string in format "DD/MM/YYYY".
Definition: KVDatime.cpp:264
void SetIRODSDate(const Char_t *IRODSDateString)
Definition: KVDatime.cpp:246
EKVDateFormat
Definition: KVDatime.h:45
@ kSRB
Definition: KVDatime.h:49
@ kGANACQ2010
Definition: KVDatime.h:52
@ kIRODS
Definition: KVDatime.h:50
@ kGANACQ
Definition: KVDatime.h:47
@ kDMY
Definition: KVDatime.h:51
@ kSQL
Definition: KVDatime.h:48
@ kCTIME
Definition: KVDatime.h:46
@ kGANACQNarval
Definition: KVDatime.h:53
static std::unordered_map< std::string, int > fMonthToNum
map month name to number
Definition: KVDatime.h:37
static Bool_t IsGANACQFormat(const Char_t *date)
Definition: KVDatime.cpp:436
static const std::vector< std::string > fNumToMonth
map month number to name
Definition: KVDatime.h:36
static Bool_t IsSRBFormat(const Char_t *date)
Definition: KVDatime.cpp:511
TString fStr
internal buffer used by String method
Definition: KVDatime.h:38
KVDatime()
Definition: KVDatime.cpp:50
const Char_t * String(EKVDateFormat fmt=kCTIME)
Definition: KVDatime.cpp:404
void init_month_map()
set up static map of month names to month numbers if needed
Definition: KVDatime.cpp:20
static Bool_t IsSQLFormat(const Char_t *date)
Definition: KVDatime.cpp:494
static Bool_t IsGANACQ2010Format(const Char_t *date)
Definition: KVDatime.cpp:453
void SetSQLDate(const Char_t *SQLDateString)
Definition: KVDatime.cpp:209
void SetGanacqNarvalDate(const Char_t *GanacqDateString)
Definition: KVDatime.cpp:305
const Char_t * AsDMYDateString() const
Definition: KVDatime.cpp:388
KVDatime & operator=(const KVDatime &)
copy assignment operator
Definition: KVDatime.cpp:197
const Char_t * AsGanacqDateString() const
Definition: KVDatime.cpp:376
std::optional< int > get_month_from_name(const char *)
Definition: KVDatime.cpp:35
void SetSRBDate(const Char_t *SRBDateString)
Definition: KVDatime.cpp:226
static Bool_t IsGANACQNarvalFormat(const Char_t *date)
Definition: KVDatime.cpp:474
static Bool_t IsIRODSFormat(const Char_t *date)
Definition: KVDatime.cpp:528
void SetGanacq2010Date(const Char_t *GanacqDateString)
Definition: KVDatime.cpp:278
Double_t GetDureeInSeconds(KVDatime from)
Definition: KVDatime.cpp:588
void SetGanacqDate(const Char_t *GanacqDateString)
Definition: KVDatime.cpp:331