Witam, mam problem z zadaniem.
Przygotować metodę, która wyliczy różnicę czasu pomiędzy czasami w formacie HH:MM lub H:MM w minutach. Z pośród wielu godzin należy znaleźć najmniejszą różnicę między dwoma godzinami.
Mam problem z wyznaczaniem roznicy miedzy np 23:50 a 00:10
//
//
#include <sstream>
#include <regex>
#include <cmath>
#include "MinimalTimeDifference.h"
unsigned int MinimalTimeDifference(std::vector<std::string> times)
{
std::vector<int> times_minutes;
for(std::string v : times)
{
times_minutes.push_back(ToMinutes(v));
}
unsigned int smaller=1440;
int m =0;
for(int t1 : times_minutes)
{
for(int t2: times_minutes)
{
{
m=abs(t1-t2);
if(m< smaller) smaller = m;
}
}
}
return smaller;
}
unsigned int ToMinutes(std::string time_HH_MM)
{
std::regex searching{R"((\d{1,2}):(\d{2}))"};
std::smatch matches;
std::string str_minutes, str_hours;
if (regex_match(time_HH_MM, matches, searching))
{
str_minutes = matches[2];
str_hours = matches[1];
}
int minutes=0;
std::istringstream ism(str_minutes);
ism >> minutes;
int hours=0;
std::istringstream ish(str_hours);
ish >> hours;
minutes += (hours*60);
return minutes;
}