Browse Source

Fixed time - string conversions

Conversions would fail where hours exceeded 24h
Felix 8 tháng trước cách đây
mục cha
commit
8a02256d9f
1 tập tin đã thay đổi với 11 bổ sung2 xóa
  1. 11 2
      src/classes/time.cpp

+ 11 - 2
src/classes/time.cpp

@@ -54,8 +54,17 @@ Time Time::fromString(const QString &timeString, const DateTimeFormat &format)
     switch(format.timeFormat()) {
     case DateTimeFormat::TimeFormat::Default:
     {
-        const auto qTime = QTime::fromString(timeString, QStringLiteral("hh:mm"));
-        return Time(qTime, format);
+        int seperatorIndex = timeString.indexOf(QLatin1Char(':'));
+        if(seperatorIndex < 0) {
+            LOG << "Invalid Time Input:" << timeString;
+            return Time(-1, format);
+        }
+
+        int hours = timeString.first(seperatorIndex).toInt();
+        int minutes = timeString.last(2).toInt();
+        int totalMinutes = hours * 60 + minutes;
+
+        return Time(totalMinutes, format);
         break;
     }
     case DateTimeFormat::TimeFormat::Decimal: