int days=seconds/86400;
seconds%=86400;
- int hours=seconds/3600;
- seconds%=3600;
-
- int minutes=seconds/60;
- seconds%=60;
-
+ int hours,minutes;
+ split_daysec(seconds,&hours,&minutes,&seconds);
+
if (days==1)
out << i18n("1 day") << ", ";
else if (days>1)
}
}
-std::string output_hour_minute(int hour, int minute, bool h_for_00)
+/**
+ * Split seconds into hours, minutes and seconds
+ * @param [in] daysec Seconds since start of day
+ * @param [out] outhours hours
+ * @param [out] outminutes minutes
+ * @param [out] outseconds seconds
+ */
+void split_daysec(int daysec, int *outhours, int *outminutes, int *outseconds)
+{
+ int hours=daysec/3600;
+ daysec%=3600;
+
+ int minutes=daysec/60;
+ daysec%=60;
+
+ if (outhours)
+ *outhours=hours;
+
+ if (outminutes)
+ *outminutes=minutes;
+
+ if (outseconds)
+ *outseconds=daysec;
+}
+
+std::string output_hour_minute(int hour, int minute, bool h_for_00, int seconds)
{
ostringstream out;
out << '0';
out << hour;
- if (!h_for_00 || minute != 0)
+ if (!h_for_00 || minute != 0 || seconds > 0)
{
out << ':';
if (minute >= 0 && minute < 10)
else
out << 'h';
+ if (seconds > 0)
+ {
+ out << ':';
+ if (seconds > 0 && seconds < 10)
+ out << '0';
+ out << seconds;
+ }
+
return out.str();
}
std::string make_nice_time(int seconds);
std::string format_full_time(int seconds);
void seconds_to_hour_minute(int seconds, int *hour, int *minute);
-std::string output_hour_minute(int hour, int minute, bool h_for_00=true);
+void split_daysec(int daysec, int *outhours=NULL, int *outminutes=NULL, int *outseconds=NULL);
+std::string output_hour_minute(int hour, int minute, bool h_for_00=true, int seconds=0);
inline std::string output_hour_minute_from_seconds(int seconds)
{
int hour, minute;
- seconds_to_hour_minute(seconds,&hour,&minute);
+ split_daysec(seconds,&hour,&minute);
return output_hour_minute(hour,minute);
}