34 return Duration(std::chrono::duration_cast<std::chrono::nanoseconds>(
35 std::chrono::hours(
h)));
44 return Duration(std::chrono::duration_cast<std::chrono::nanoseconds>(
45 std::chrono::minutes(
m)));
54 return Duration(std::chrono::duration_cast<std::chrono::nanoseconds>(
55 std::chrono::seconds(
s)));
64 return Duration(std::chrono::duration_cast<std::chrono::nanoseconds>(
65 std::chrono::milliseconds(ms)));
74 return Duration(std::chrono::duration_cast<std::chrono::nanoseconds>(
75 std::chrono::microseconds(
us)));
95 return std::chrono::duration_cast<std::chrono::hours>(_ns).
count();
103 return std::chrono::duration_cast<std::chrono::minutes>(_ns).
count();
111 return std::chrono::duration_cast<std::chrono::seconds>(_ns).
count();
119 return std::chrono::duration_cast<std::chrono::milliseconds>(_ns).
count();
127 return std::chrono::duration_cast<std::chrono::microseconds>(_ns).
count();
143 return std::chrono::duration<double>(_ns).
count();
150 bool isZero()
const {
return _ns.count() == 0; }
187 explicit Duration(std::chrono::nanoseconds
ns) : _ns(
ns) {}
188 std::chrono::nanoseconds _ns;
Time duration with nanosecond precision.
Definition duration.h:26
bool operator==(const Duration &o) const
Equality comparison.
Definition duration.h:174
static Duration fromMinutes(int64_t m)
Creates a Duration from minutes.
Definition duration.h:43
int64_t nanoseconds() const
Returns the total number of nanoseconds.
Definition duration.h:134
int64_t minutes() const
Returns the total number of whole minutes.
Definition duration.h:102
bool operator<(const Duration &o) const
Less-than comparison.
Definition duration.h:178
Duration operator*(int64_t s) const
Scalar multiplication operator.
Definition duration.h:169
Duration operator+(const Duration &o) const
Addition operator.
Definition duration.h:165
static Duration fromNanoseconds(int64_t ns)
Creates a Duration from nanoseconds.
Definition duration.h:83
String toString() const
Returns a human-readable representation (e.g. "1h 23m 45s").
bool operator>(const Duration &o) const
Greater-than comparison.
Definition duration.h:180
Duration()
Default constructor. Creates a zero duration.
Definition duration.h:88
double toSecondsDouble() const
Returns the duration as a fractional number of seconds.
Definition duration.h:142
static Duration fromSeconds(int64_t s)
Creates a Duration from seconds.
Definition duration.h:53
int64_t seconds() const
Returns the total number of whole seconds.
Definition duration.h:110
static Duration fromMilliseconds(int64_t ms)
Creates a Duration from milliseconds.
Definition duration.h:63
bool operator<=(const Duration &o) const
Less-than-or-equal comparison.
Definition duration.h:182
static Duration fromHours(int64_t h)
Creates a Duration from hours.
Definition duration.h:33
int64_t microseconds() const
Returns the total number of whole microseconds.
Definition duration.h:126
bool isZero() const
Returns true if the duration is exactly zero.
Definition duration.h:150
Duration operator-(const Duration &o) const
Subtraction operator.
Definition duration.h:167
bool isNegative() const
Returns true if the duration is negative.
Definition duration.h:156
int64_t milliseconds() const
Returns the total number of whole milliseconds.
Definition duration.h:118
bool operator!=(const Duration &o) const
Inequality comparison.
Definition duration.h:176
int64_t hours() const
Returns the total number of whole hours.
Definition duration.h:94
static Duration fromMicroseconds(int64_t us)
Creates a Duration from microseconds.
Definition duration.h:73
Duration operator/(int64_t s) const
Scalar division operator.
Definition duration.h:171
bool operator>=(const Duration &o) const
Greater-than-or-equal comparison.
Definition duration.h:184
Dynamic array container wrapping std::vector.
Definition list.h:40
size_t count(const T &value) const
Returns the number of occurrences of value.
Definition list.h:629
Encoding-aware string class with copy-on-write semantics.
Definition string.h:35
#define PROMEKI_NAMESPACE_BEGIN
Starts a promeki namespace block.
Definition namespace.h:14
#define PROMEKI_NAMESPACE_END
Ends a promeki namespace block.
Definition namespace.h:19