swift
time.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2013 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #ifndef SWIFT_MISC_PQ_TIME_H
7 #define SWIFT_MISC_PQ_TIME_H
8 
9 #include <QDateTime>
10 #include <QList>
11 #include <QMetaType>
12 #include <QString>
13 #include <QTime>
14 
16 #include "misc/pq/pqstring.h"
17 #include "misc/pq/units.h"
18 #include "misc/swiftmiscexport.h"
19 
20 namespace swift::misc::physical_quantities
21 {
25  class SWIFT_MISC_EXPORT CTime : public CPhysicalQuantity<CTimeUnit, CTime>
26  {
27  public:
29  enum Parts
30  {
31  Hours = 0,
32  Minutes,
33  Seconds
34  };
35 
37  CTime() : CPhysicalQuantity(0, CTimeUnit::defaultUnit()) {}
38 
40  CTime(double value, const CTimeUnit &unit) : CPhysicalQuantity(value, unit) {}
41 
43  CTime(int hours, int minutes, int seconds = 0);
44 
46  CTime(QTime time, bool negative = false);
47 
49  CTime(const QString &unitString) : CPhysicalQuantity(0, CTimeUnit::nullUnit())
50  {
51  this->parseFromString(unitString);
52  }
53 
55  void parseFromString(const QString &time);
56 
58  bool parseFromString_hhmm(const QString &hhmm);
59 
61  void parseFromString(const QString &time, swift::misc::physical_quantities::CPqString::SeparatorMode mode);
62 
65  QList<int> getHrsMinSecParts() const;
66 
68  QString formattedHrsMinSec() const;
69 
71  int toMs() const;
72 
74  int toSeconds() const;
75 
77  QString formattedHrsMin() const;
78 
80  QDateTime toQDateTime() const;
81 
83  QTime toQTime() const;
84  };
85 } // namespace swift::misc::physical_quantities
86 
88 
89 #endif // SWIFT_MISC_PQ_TIME_H
A physical quantity such as "5m", "20s", "1500ft/s".
SeparatorMode
Number separators / group separators.
Definition: pqstring.h:34
CTime()
Default constructor.
Definition: time.h:37
CTime(const QString &unitString)
Constructor by parsed string, e.g. 10m.
Definition: time.h:49
CTime(double value, const CTimeUnit &unit)
Init by double value.
Definition: time.h:40
Specialized class for time units (ms, hour, min).
Definition: units.h:909
#define SWIFT_MISC_EXPORT
Export a class or function from the library.