Beamlib 3.3.2
This is the Beam C++ class library.
Loading...
Searching...
No Matches
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
16public:
17 BTimeStampMs(BString str = "");
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");
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
57public:
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;
65private:
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 & 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