1 #include "../include/Alarm.hpp" 42 time_t
currentTime = chrono::system_clock::to_time_t(now);
43 tm* localTime = localtime(¤tTime);
45 localTime->tm_hour = h;
46 localTime->tm_min = m;
47 localTime->tm_sec = 0;
49 auto futureTime = chrono::system_clock::from_time_t(mktime(localTime));
61 time_t
currentTime = chrono::system_clock::to_time_t(t);
62 tm* localTime = localtime(¤tTime);
65 ss << setw(2) << setfill(
'0') << localTime->tm_hour <<
":" 66 << setw(2) << setfill(
'0') << localTime->tm_min;
80 auto totalMilliseconds = chrono::duration_cast<chrono::milliseconds>(
_endTime -
_startTime).count();
82 if (totalMilliseconds == 0) {
87 auto elapsedMilliseconds = chrono::duration_cast<chrono::milliseconds>(now -
_startTime).count();
89 if (elapsedMilliseconds >= totalMilliseconds) {
93 double percentage = (
static_cast<double>(elapsedMilliseconds) / totalMilliseconds) * 100.0;
105 auto ms = chrono::duration_cast<chrono::milliseconds>(
_endTime - now).count();
160 return chrono::system_clock::now();
string timeToString(chrono::time_point< chrono::system_clock > t)
Converts a given time point to a string format (HH:MM).
bool isRunning()
Checks if the alarm is currently running.
chrono::time_point< chrono::system_clock > getEndTime()
Returns the alarm's end time.
double percentElapsed()
Calculates the percentage of time that has elapsed from start to end.
bool isDone()
Checks if the alarm has finished.
chrono::time_point< chrono::system_clock > _startTime
chrono::time_point< chrono::system_clock > getTime(int h, int m)
Creates the nearest future time point with hours h and minutes m.
chrono::time_point< chrono::system_clock > _endTime
static chrono::time_point< chrono::system_clock > currentTime()
Returns the current system time.
Alarm(int h, int m)
Constructor for the Alarm object.
chrono::time_point< chrono::system_clock > getStartTime()
Returns the alarm's start time.
int remainingMilliseconds()
Calculates the remaining time in milliseconds until the alarm ends.
int _remainingMilliseconds