1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
#include "time-helpers.hpp"
#include "obs-module-helper.hpp"
namespace advss {
static QString combineRelativeTimeParts(const double unitCount,
const char *unitName)
{
QString combined = obs_module_text("AdvSceneSwitcher.time.relative");
return combined.arg(QString::number(unitCount, 'g', 2)).arg(unitName);
}
QString FormatRelativeTime(const double seconds)
{
// 365.2425 days
double divided = seconds / 31556952;
if (divided >= 1) {
return combineRelativeTimeParts(
divided,
obs_module_text("AdvSceneSwitcher.unit.years"));
}
// 30.436875 days
divided = seconds / 2629746;
if (divided >= 1) {
return combineRelativeTimeParts(
divided,
obs_module_text("AdvSceneSwitcher.unit.months"));
}
divided = seconds / 604800;
if (divided >= 1) {
return combineRelativeTimeParts(
divided,
obs_module_text("AdvSceneSwitcher.unit.weeks"));
}
divided = seconds / 86400;
if (divided >= 1) {
return combineRelativeTimeParts(
divided, obs_module_text("AdvSceneSwitcher.unit.days"));
}
divided = seconds / 3600;
if (divided >= 1) {
return combineRelativeTimeParts(
divided,
obs_module_text("AdvSceneSwitcher.unit.hours"));
}
divided = seconds / 60;
if (divided >= 1) {
return combineRelativeTimeParts(
divided,
obs_module_text("AdvSceneSwitcher.unit.minutes"));
}
return combineRelativeTimeParts(
seconds, obs_module_text("AdvSceneSwitcher.unit.seconds"));
}
} // namespace advss
|