#include "day.h" Day::Day() { start = QTime(9, 0, 0, 0); end = QTime(17, 15, 0, 0); BreakPoint lunch(QTime(12, 0, 0, 0), QTime(12, 45, 0, 0)); breaks.append(lunch); validate = false; } float Day::get_total() { int sec = start.secsTo(end); int minutes = sec / 60; float breakTime = get_time_break(); return (minutes - breakTime) / 60; } void Day::set_start(QTime value) { start = value; } void Day::set_end(QTime value) { end = value; } void Day::set_validate(bool value) { validate = value; } void Day::setBreaks(QVector breaks) { this->breaks = breaks; } QTime Day::get_start() { return start; } QTime Day::get_end() { return end; } QVector Day::getBreaks() { return breaks; } QJsonObject Day::to_json() { QJsonArray arr; foreach (BreakPoint bp, breaks) { arr.append(bp.to_json()); } QJsonObject obj{ {KEY_START, start.toString(Qt::DateFormat::ISODate)}, {KEY_END, end.toString(Qt::DateFormat::ISODate)}, {KEY_BREAKS, arr}, {KEY_VALIDATE, validate} }; return obj; } Day Day::from_json(QJsonObject obj) { Day result; result.start = QTime::fromString(obj[KEY_START].toString(), Qt::DateFormat::ISODate); result.end = QTime::fromString(obj[KEY_END].toString(), Qt::DateFormat::ISODate); result.validate = obj[KEY_VALIDATE].toBool(); result.breaks.clear(); QJsonArray arr = obj[KEY_BREAKS].toArray(); foreach (QJsonValue val, arr) { result.breaks.append(BreakPoint::from_json(val.toObject())); } return result; } bool Day::get_validate() { return validate; } float Day::get_time_break() { float result = 0; foreach (BreakPoint bp, breaks) { result += bp.getDuration(); } return result; }