24 #include "src/functions/alog.h" 
   31 inline const QString toString(
const QTime &time, Opl::Time::FlightTimeFormat format = Opl::Time::Default)
 
   34     case Opl::Time::Default:
 
   35         return time.toString(QStringLiteral(
"hh:mm"));
 
   37     case Opl::Time::Decimal:
 
   38         return QString::number(((time.hour() * 60 + time.minute() )/60.0), 
'f', 2);
 
   48 inline const QString toString(
int minutes_in, Opl::Time::FlightTimeFormat format = Opl::Time::Default)
 
   51     case Opl::Time::Default:
 
   53         QString hour = QString::number(minutes_in / 60);
 
   54         if (hour.size() < 2) {
 
   55             hour.prepend(QStringLiteral(
"0"));
 
   57         QString minute = QString::number(minutes_in % 60);
 
   58         if (minute.size() < 2) {
 
   59             minute.prepend(QStringLiteral(
"0"));
 
   61         return hour + 
':' + minute;
 
   63     case Opl::Time::Decimal:
 
   65         int hour = minutes_in / 60;
 
   66         double minute = (minutes_in % 60) / 60.0;
 
   67         return QString::number((hour + minute), 
'f', 2);
 
   75 inline double toDecimalHours(
const QTime &time){
 
   76     return (time.hour() * 60 + time.minute()) / 60.0;
 
   79 inline QTime qTimefromMinutes(
int total_minutes)
 
   81     int minute = total_minutes % 60;
 
   82     int hour = total_minutes / 60;
 
   84     return QTime(hour, minute, 0);
 
   87 inline const QTime fromString(QString time_string, Opl::Time::FlightTimeFormat format = Opl::Time::Default)
 
   90     case Opl::Time::Default:
 
   91         return QTime::fromString(time_string, QStringLiteral(
"hh:mm"));
 
   93     case Opl::Time::Decimal:
 
   95         double decimal_time = time_string.toDouble();
 
   96         int hour = decimal_time;
 
   97         int minute = round((decimal_time - hour) * 60);
 
   98         return QTime(hour, minute, 0);
 
  106 inline const QTime fromString(
const char* time_string, Opl::Time::FlightTimeFormat format = Opl::Time::Default)
 
  109     case Opl::Time::Default:
 
  110         return QTime::fromString(time_string, QStringLiteral(
"hh:mm"));
 
  112     case Opl::Time::Decimal:
 
  114         double decimal_time = QString(time_string).toDouble();
 
  115         int hour = decimal_time;
 
  116         int minute = round((decimal_time - hour) * 60);
 
  117         return QTime(hour, minute, 0);
 
  125 inline int toMinutes(
const QTime &time) {
return time.hour() * 60 + time.minute();}
 
  126 inline int toMinutes(
const QString &time_string) {
return toMinutes(fromString(time_string));}
 
  128 inline QTime blocktime(
const QTime &tofb, 
const QTime &tonb)
 
  130     QTime blocktime_out(0, 0); 
 
  133         int block_seconds = tofb.secsTo(tonb);
 
  134         blocktime_out = blocktime_out.addSecs(block_seconds);
 
  136         QTime midnight(0, 0);
 
  137         int seconds = tofb.secsTo(midnight);
 
  138         blocktime_out = blocktime_out.addSecs(seconds);
 
  139         seconds = midnight.secsTo(tonb);
 
  140         blocktime_out = blocktime_out.addSecs(seconds);
 
  142     return blocktime_out;
 
  145 inline QTime blocktime(
const QString& tofb, 
const QString& tonb)
 
  147     QTime t_tofb = ATime::fromString(tofb);
 
  148     QTime t_tonb = ATime::fromString(tonb);
 
  149     return blocktime(t_tofb, t_tonb);
 
  156 inline int blockMinutes(
const QString& tofb, 
const QString& tonb)
 
  158     const QTime t_tofb = ATime::fromString(tofb);
 
  159     const QTime t_tonb = ATime::fromString(tonb);
 
  160     if (t_tofb.isValid() && t_tonb.isValid()) {
 
  161         const auto tblk = ATime::blocktime(t_tofb, t_tonb);
 
  162         return ATime::toMinutes(tblk);
 
  171 inline int blockMinutes(
const QTime& tofb, 
const QTime& tonb)
 
  173     if (tofb.isValid() && tonb.isValid()) {
 
  174         const auto tblk = ATime::blocktime(tofb, tonb);
 
  175         return ATime::toMinutes(tblk);
 
  191     bool contains_seperator = user_input.contains(
':');
 
  192     if (user_input.length() == 4 && !contains_seperator) {
 
  193         temp_time = QTime::fromString(user_input, QStringLiteral(
"hhmm"));
 
  194     } 
else if (user_input.length() == 3 && !contains_seperator) {
 
  195         if (user_input.toInt() < 240) { 
 
  196             QString tempstring = user_input.prepend(QStringLiteral(
"0"));
 
  197             temp_time = QTime::fromString(tempstring, QStringLiteral(
"hhmm"));
 
  199             temp_time = QTime::fromString(user_input, QStringLiteral(
"Hmm"));
 
  201     } 
else if (user_input.length() == 4 && contains_seperator) {
 
  202         temp_time = QTime::fromString(user_input, QStringLiteral(
"h:mm"));
 
  203     } 
else if (user_input.length() == 5 && contains_seperator) {
 
  204         temp_time = QTime::fromString(user_input, QStringLiteral(
"hh:mm"));
 
  207     auto output = temp_time.toString(QStringLiteral(
"hh:mm"));
 
  209     if (output.isEmpty()) {
 
  210         DEB << 
"Time input is invalid.";
 
QString formatTimeInput(QString user_input)
ACalc::formatTimeInput verifies user input and formats to hh:mm if the output is not a valid time,...
Definition: acalc.cpp:35