Как я могу преобразовать время, хранящееся в строковой переменной в формат времени?

0

Я искал некоторые темы по этому поводу, но все они кажутся довольно расплывчатыми.

У меня есть 4 строковые переменные, содержащие время, представляющее время начала и окончания 2-х событий в формате "17:30" или "01:20" и т.д.

Я хочу написать функцию, чтобы определить, столкнулись ли они или нет. Так что я ищу что-то вроде

string beginTime1 = "01:30";
string beginTime2 = "03:30";
string endTime1 = "01:30";
string endTime2 = "01:30";
time begin1, begin2, end1, end2;

begin1 = toTime(beginTime1);
begin2 = toTime(beginTime2);
end1 = toTime(endTime1);
end2 = toTime(endTime2);

If (begin2 > begin1 && begin2 < end1)
    return clash;

Или что-то типа того.

  • 0
    Разрешено ли проводить мероприятия до полуночи (00:00)?
  • 0
    Нет. Они начинаются не ранее 06:30 и заканчиваются не позднее 20:30.
Теги:
string
time

2 ответа

1
Лучший ответ

У Boost Posix Time Library есть функция для получения значения posix_time из std::string: from_string().

0

Что значит для двух событий "столкнуться"? Это происходит, когда один начинается до другого конца. Итак begin1 < end2 || begin2 < end1 begin1 < end2 || begin2 < end1.

Если ваше время всегда форматируется как HH:MM, нет необходимости конвертировать их в другой формат перед конвертированием, потому что лексикографический порядок уже правильный.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню