mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-03-22 09:54:54 -05:00
64 lines
1.4 KiB
C++
64 lines
1.4 KiB
C++
#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
|