Завершено
2
16.05.2022, 07:14
21.05.2022, 03:28
Реализовать Простой класс SimpleTime.
Реализовать класс SimpleTime
.
public
и protected
методы классов фиксированы, кроме спецификаторов.
Т.е. нельзя менять названия методов, а также типы и количество аргументов.
НО в этих методах отсутствуют спецификаторы const
и static
, которые были удалены намеренно. Их необходимо вернуть на место.
private
поля и private
методы можно добавлять в класс SimpleTime
.
class SimpleTime {
public:
SimpleTime();
SimpleTime(int hours, int min, int sec, int msec);
SimpleTime(const char* str);
SimpleTime addMSecs(int ms);
SimpleTime addSecs(int s);
int hour();
int minute();
int second();
int msec();
bool isValid();
int msecsTo(const SimpleTime & t);
int secsTo(const SimpleTime & t);
bool setHMS(int h, int m, int s, int ms = 0);
size_t toString(char* buff, size_t buffer_size);
bool operator!=(const SimpleTime & t);
bool operator<(const SimpleTime & t);
bool operator<=(const SimpleTime & t);
bool operator==(const SimpleTime & t);
bool operator>(const SimpleTime & t);
bool operator>=(const SimpleTime & t);
static SimpleTime Now();
};
SimpleTime()
-- Конструктор по умолчанию.SimpleTime(int hours, int min, int sec, int msec)
-- SimpleTime(const char* str)
-- Создаёт объект из строки формата "hh:mm:ss.ms"SimpleTime addMSecs(int ms)
-- порождает новый объект со сдвигом в миллисекундахSimpleTime addSecs(int s)
-- порождает новый объект со сдвигом в секундахint hour()
-- возвращает кол-во часовint minute()
-- возвращает кол-во минутint second()
-- возвращает кол-во секундint msec()
-- возвращает кол-во миллисекундbool isValid()
-- корректно ли время. isValid()
возвращает false
если
SimpleTime(const char* str)
с неправильной строкой SimpleTime(int hours, int min, int sec, int msec)
или setHMS(int h, int m, int s, int ms = 0)
с неправильными параметрами, например отрицательными или hours >= 24, min >= 60, sec>=60, msec >= 1000 и т.д.int msecsTo(const SimpleTime & t)
-- возвращает кол-во мсек до событияint secsTo(const SimpleTime & t)
-- возвращает кол-во сек до события bool setHMS(int h, int m, int s, int ms = 0)
-- установить новую датуsize_t toString(char* buff, size_t buffer_size)
-- преобразует SimpleTime
в строку, согласно формату "hh:mm:ss.ms".
char* buff
- Буфер для строки,
size_t buff_lenght
- длина буфера.
Возвращает количество записанных в буфер байт (включая заключительный ноль).
Если в буфере не достаточно места или buff
равен NULL
, в буфер ничего не записывается и возвращается количество байт, необходимое для правильного вывода (включая заключительный ноль).bool operator==(const SimpleTime & t)
-- Оператор ==
, возвращает true
если аргумент равен исходному SimpleTime
bool operator!=(const SimpleTime & t)
-- Оператор !=
, возвращает true
если аргумент не равен исходному SimpleTime
bool operator>=(const SimpleTime & t)
-- Оператор больше либо равноbool operator<=(const SimpleTime & t)
-- Оператор меньше либо равноbool operator>(const SimpleTime & t)
-- Оператор большеbool operator<(const SimpleTime & t)
-- Оператор меньшеstatic SimpleTime Now()
-- возвращает текущее времяВремя ограничено 24-я часами и заворачивается(wrap) при переполнении. Отрицательный результат операций типа addSec(..) и addMSec(..) то-же заворачивается в положительную сторону.