Beam-lib  2.16.3
This is the Beam C++ class library.
BTimeStampMs.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * BTimeStampMs.h TimeStamp classes
3  * T.Barnaby, BEAM Ltd, 2005-10-20
4  * Copyright (c) 2012 All Right Reserved, Beam Ltd, http://www.beam.ltd.uk
5  *******************************************************************************
6  */
7 #ifndef BTimeStampMs_H
8 #define BTimeStampMs_H 1
9 
10 #include <stdint.h>
11 #include <BError.h>
12 
13 class BTimeStampMs {
14 public:
15  BTimeStampMs(BString str = "");
16  ~BTimeStampMs();
17 
18  void clear();
19 
20  void setNow();
21  void setFirst();
22  void setLast();
23 
24  void set(time_t time, int milliSeconds = 0);
25  void setYDay(int year = 0, int yday = 0, int hour = 0, int minute = 0, int second = 0, int milliSecond = 0);
26  void setTime(int hour = 0, int minute = 0, int second = 0, int milliSecond = 0);
27 
28  BTimeStampMs& addMilliSeconds(int milliSeconds);
29  BTimeStampMs& subMilliSeconds(int milliSeconds);
30  BTimeStampMs& addSeconds(int seconds);
31  BTimeStampMs& subSeconds(int seconds);
32  uint32_t getYearSeconds();
33  uint64_t getYearMilliSeconds();
34 
35  BString getString(BString separator = "T");
36  BString getStringNoMs(BString separator = "T");
37  BError setString(BString dateTime);
38 
39  BString getDurationString(BString separator = "T");
40  BString getDurationStringNoMs(BString separator = "T");
41  BError setDurationString(BString dateTime);
43 
44  void getDate(int& year, int& mon, int& day);
45  int compare(const BTimeStampMs& timeStamp);
46 
47  int operator>(const BTimeStampMs& timeStamp){ return (compare(timeStamp) > 0); }
48  int operator>=(const BTimeStampMs& timeStamp){ return (compare(timeStamp) >= 0); }
49  int operator<(const BTimeStampMs& timeStamp){ return (compare(timeStamp) < 0); }
50  int operator<=(const BTimeStampMs& timeStamp){ return (compare(timeStamp) <= 0); }
51 
52  static int isLeap(int year);
54 
55 public:
56  uint16_t year;
57  uint16_t yday;
58  uint16_t hour;
59  uint16_t minute;
60  uint16_t second;
61  uint16_t milliSecond;
62  int32_t sampleNumber;
63 private:
64 };
65 
66 #endif
void set(time_t time, int milliSeconds=0)
Set time using Unix time (seconds from 1970-01-01)
Definition: BTimeStampMs.cpp:61
BString getStringRaw()
Definition: BTimeStampMs.cpp:193
Definition: BString.h:18
BTimeStampMs & subMilliSeconds(int milliSeconds)
Add the given number of milli seconds. This should be less that a year.
Definition: BTimeStampMs.cpp:222
void setFirst()
Set the first date available.
Definition: BTimeStampMs.cpp:53
BTimeStampMs & addSeconds(int seconds)
Add the given number of seconds. This should be less that a year.
Definition: BTimeStampMs.cpp:226
BTimeStampMs & subSeconds(int seconds)
Subtract the given number of seconds. This should be less that a year.
Definition: BTimeStampMs.cpp:290
BTimeStampMs & addMilliSeconds(int milliSeconds)
Add the given number of milli seconds. This should be less that a year.
Definition: BTimeStampMs.cpp:206
void clear()
Clear the date/time.
Definition: BTimeStampMs.cpp:31
static int isLeap(int year)
Definition: BTimeStampMs.cpp:9
uint16_t hour
Hour (0 .. 23)
Definition: BTimeStampMs.h:58
uint16_t minute
Minute (0 .. 59)
Definition: BTimeStampMs.h:59
uint64_t BUInt64
Definition: BTypes.h:23
uint16_t second
Second (0 .. 59)
Definition: BTimeStampMs.h:60
void setTime(int hour=0, int minute=0, int second=0, int milliSecond=0)
Definition: BTimeStampMs.cpp:84
void getDate(int &year, int &mon, int &day)
Get the year, month and day.
Definition: BTimeStampMs.cpp:200
uint32_t getYearSeconds()
Get number of seconds within the year.
Definition: BTimeStampMs.cpp:294
BTimeStampMs(BString str="")
Definition: BTimeStampMs.cpp:21
uint16_t yday
Day in year (0 .. 365)
Definition: BTimeStampMs.h:57
Definition: BTimeStampMs.h:13
int operator<=(const BTimeStampMs &timeStamp)
Definition: BTimeStampMs.h:50
uint64_t getYearMilliSeconds()
Get number of seconds within the year.
Definition: BTimeStampMs.cpp:305
BString getDurationStringNoMs(BString separator="T")
Get the time as an ISO date/time string but with month's and days starting from 0 with no ms.
Definition: BTimeStampMs.cpp:127
BString getStringNoMs(BString separator="T")
Get the time as an ISO date/time string with no ms.
Definition: BTimeStampMs.cpp:103
BError setString(BString dateTime)
Set the time from an ISO date/time.
Definition: BTimeStampMs.cpp:139
void setLast()
Set the last date available.
Definition: BTimeStampMs.cpp:57
int operator>=(const BTimeStampMs &timeStamp)
Definition: BTimeStampMs.h:48
int operator>(const BTimeStampMs &timeStamp)
Definition: BTimeStampMs.h:47
uint16_t year
Year (2000 .. 3000)
Definition: BTimeStampMs.h:56
void setYDay(int year=0, int yday=0, int hour=0, int minute=0, int second=0, int milliSecond=0)
Definition: BTimeStampMs.cpp:75
uint16_t milliSecond
MilliSecond (0 .. 999)
Definition: BTimeStampMs.h:61
~BTimeStampMs()
Definition: BTimeStampMs.cpp:28
BError setDurationString(BString dateTime)
Set the time from an ISO date/time string but with month's and days starting from 0.
Definition: BTimeStampMs.cpp:166
static BUInt64 difference(BTimeStampMs t2, BTimeStampMs t1)
Definition: BTimeStampMs.cpp:352
int32_t sampleNumber
The sample number this time refers to.
Definition: BTimeStampMs.h:62
BString getDurationString(BString separator="T")
Get the time as an ISO date/time string but with month's and days starting from 0.
Definition: BTimeStampMs.cpp:115
int operator<(const BTimeStampMs &timeStamp)
Definition: BTimeStampMs.h:49
Definition: BError.h:25
int compare(const BTimeStampMs &timeStamp)
Compare two dates.
Definition: BTimeStampMs.cpp:317
void setNow()
Set the timeStamp to now.
Definition: BTimeStampMs.cpp:35
BString getString(BString separator="T")
Get the time as an ISO date/time string.
Definition: BTimeStampMs.cpp:91