ESP DateTime  0.2.0
Date Time Functions and Classes for ESP8266 and ESP32
TimeElapsed.h
Go to the documentation of this file.
1 #ifndef ESP_DATE_TIME_TIME_ELAPSED_H
2 #define ESP_DATE_TIME_TIME_ELAPSED_H
3 
4 /**
5  * @file TimeElapsed.h
6  * @author Zhang Xiaoke (github@mcxiaoke.com)
7  * @brief ESPDateTime header
8  *
9  */
10 
11 #include <Arduino.h>
12 
13 /**
14  * @brief TimeElapsed class
15  *
16  */
17 
18 class TimeElapsed {
19  private:
20  unsigned long ms;
21 
22  public:
23  TimeElapsed() : ms(millis()) {}
24  TimeElapsed(unsigned long val) { ms = millis() - val; }
25  TimeElapsed(const TimeElapsed& rhs) { ms = rhs.ms; }
26  operator unsigned long() const { return millis() - ms; }
27  TimeElapsed& operator=(const TimeElapsed& rhs) {
28  ms = rhs.ms;
29  return *this;
30  }
31  TimeElapsed& operator=(unsigned long val) {
32  ms = millis() - val;
33  return *this;
34  }
35  TimeElapsed& operator-=(unsigned long val) {
36  ms += val;
37  return *this;
38  }
39  TimeElapsed& operator+=(unsigned long val) {
40  ms -= val;
41  return *this;
42  }
43  TimeElapsed operator-(int val) const {
44  TimeElapsed r(*this);
45  r.ms += val;
46  return r;
47  }
48  TimeElapsed operator-(unsigned int val) const {
49  TimeElapsed r(*this);
50  r.ms += val;
51  return r;
52  }
53  TimeElapsed operator-(long val) const {
54  TimeElapsed r(*this);
55  r.ms += val;
56  return r;
57  }
58  TimeElapsed operator-(unsigned long val) const {
59  TimeElapsed r(*this);
60  r.ms += val;
61  return r;
62  }
63  TimeElapsed operator+(int val) const {
64  TimeElapsed r(*this);
65  r.ms -= val;
66  return r;
67  }
68  TimeElapsed operator+(unsigned int val) const {
69  TimeElapsed r(*this);
70  r.ms -= val;
71  return r;
72  }
73  TimeElapsed operator+(long val) const {
74  TimeElapsed r(*this);
75  r.ms -= val;
76  return r;
77  }
78  TimeElapsed operator+(unsigned long val) const {
79  TimeElapsed r(*this);
80  r.ms -= val;
81  return r;
82  }
83 };
84 
85 #endif
TimeElapsed
TimeElapsed class.
Definition: TimeElapsed.h:18