Beamlib  3.0.1
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) 2022 All Right Reserved, Beam Ltd, https://www.beam.ltd.uk
5  * For license see LICENSE.txt at the root of the beamlib source tree.
6  *******************************************************************************
7  */
8 #ifndef BTimeStampMs_H
9 #define BTimeStampMs_H 1
10 
11 #include <stdint.h>
12 #include <BError.h>
13 
15 class BTimeStampMs {
16 public:
17  BTimeStampMs(BString str = "");
18  ~BTimeStampMs();
19 
20  void clear();
21 
22  void setNow();
23  void setFirst();
24  void setLast();
25 
26  void set(time_t time, int milliSeconds = 0);
27  void setYDay(int year = 0, int yday = 0, int hour = 0, int minute = 0, int second = 0, int milliSecond = 0);
28  void setTime(int hour = 0, int minute = 0, int second = 0, int milliSecond = 0);
29 
30  BTimeStampMs& addMilliSeconds(int milliSeconds);
31  BTimeStampMs& subMilliSeconds(int milliSeconds);
32  BTimeStampMs& addSeconds(int seconds);
33  BTimeStampMs& subSeconds(int seconds);
34  uint32_t getYearSeconds();
35  uint64_t getYearMilliSeconds();
36 
37  BString getString(BString separator = "T");
38  BString getStringNoMs(BString separator = "T");
39  BError setString(BString dateTime);
40 
41  BString getDurationString(BString separator = "T");
42  BString getDurationStringNoMs(BString separator = "T");
43  BError setDurationString(BString dateTime);
45 
46  void getDate(int& year, int& mon, int& day);
47  int compare(const BTimeStampMs& timeStamp);
48 
49  int operator>(const BTimeStampMs& timeStamp){ return (compare(timeStamp) > 0); }
50  int operator>=(const BTimeStampMs& timeStamp){ return (compare(timeStamp) >= 0); }
51  int operator<(const BTimeStampMs& timeStamp){ return (compare(timeStamp) < 0); }
52  int operator<=(const BTimeStampMs& timeStamp){ return (compare(timeStamp) <= 0); }
53 
54  static int isLeap(int year);
56 
57 public:
58  uint16_t year;
59  uint16_t yday;
60  uint16_t hour;
61  uint16_t minute;
62  uint16_t second;
63  uint16_t milliSecond;
64  int32_t sampleNumber;
65 private:
66 };
67 
68 #endif
uint64_t BUInt64
Definition: BTypes.h:26
Error return class. This class is used to return the error status from a function....
Definition: BError.h:31
This class stores and manipulates ASCII strings.
Definition: BString.h:20
A date and time storage class with milisecond resolution and an extra field to indicate a particular ...
Definition: BTimeStampMs.h:15
int operator<=(const BTimeStampMs &timeStamp)
Definition: BTimeStampMs.h:52
int operator>=(const BTimeStampMs &timeStamp)
Definition: BTimeStampMs.h:50
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:188
BTimeStampMs(BString str="")
Definition: BTimeStampMs.cpp:27
BTimeStampMs & subSeconds(int seconds)
Subtract the given number of seconds. This should be less that a year.
Definition: BTimeStampMs.cpp:312
BString getStringNoMs(BString separator="T")
Get the time as an ISO date/time string with no ms.
Definition: BTimeStampMs.cpp:109
uint16_t second
Second (0 .. 59)
Definition: BTimeStampMs.h:62
uint16_t hour
Hour (0 .. 23)
Definition: BTimeStampMs.h:60
BTimeStampMs & addMilliSeconds(int milliSeconds)
Add the given number of milli seconds. This should be less that a year.
Definition: BTimeStampMs.cpp:228
void setLast()
Set the last date available.
Definition: BTimeStampMs.cpp:63
void clear()
Clear the date/time.
Definition: BTimeStampMs.cpp:37
uint16_t minute
Minute (0 .. 59)
Definition: BTimeStampMs.h:61
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:121
static int isLeap(int year)
Definition: BTimeStampMs.cpp:15
static BUInt64 difference(BTimeStampMs t2, BTimeStampMs t1)
Definition: BTimeStampMs.cpp:374
~BTimeStampMs()
Definition: BTimeStampMs.cpp:34
int operator<(const BTimeStampMs &timeStamp)
Definition: BTimeStampMs.h:51
int32_t sampleNumber
The sample number this time refers to.
Definition: BTimeStampMs.h:64
BString getString(BString separator="T")
Get the time as an ISO date/time string.
Definition: BTimeStampMs.cpp:97
uint16_t yday
Day in year (0 .. 365)
Definition: BTimeStampMs.h:59
int operator>(const BTimeStampMs &timeStamp)
Definition: BTimeStampMs.h:49
BString getStringRaw()
Definition: BTimeStampMs.cpp:215
void getDate(int &year, int &mon, int &day)
Get the year, month and day.
Definition: BTimeStampMs.cpp:222
void setFirst()
Set the first date available.
Definition: BTimeStampMs.cpp:59
void set(time_t time, int milliSeconds=0)
Set time using Unix time (seconds from 1970-01-01)
Definition: BTimeStampMs.cpp:67
uint64_t getYearMilliSeconds()
Get number of seconds within the year.
Definition: BTimeStampMs.cpp:327
BError setString(BString dateTime)
Set the time from an ISO date/time.
Definition: BTimeStampMs.cpp:152
void setTime(int hour=0, int minute=0, int second=0, int milliSecond=0)
Definition: BTimeStampMs.cpp:90
void setNow()
Set the timeStamp to now.
Definition: BTimeStampMs.cpp:41
BTimeStampMs & subMilliSeconds(int milliSeconds)
Add the given number of milli seconds. This should be less that a year.
Definition: BTimeStampMs.cpp:244
BTimeStampMs & addSeconds(int seconds)
Add the given number of seconds. This should be less that a year.
Definition: BTimeStampMs.cpp:248
uint32_t getYearSeconds()
Get number of seconds within the year.
Definition: BTimeStampMs.cpp:316
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:133
int compare(const BTimeStampMs &timeStamp)
Compare two dates.
Definition: BTimeStampMs.cpp:339
void setYDay(int year=0, int yday=0, int hour=0, int minute=0, int second=0, int milliSecond=0)
Definition: BTimeStampMs.cpp:81
uint16_t year
Year (2000 .. 3000)
Definition: BTimeStampMs.h:58
uint16_t milliSecond
MilliSecond (0 .. 999)
Definition: BTimeStampMs.h:63