mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-08-11 11:47:41 -05:00
Add enhanced relative time to variable tab cells
This commit is contained in:
committed by
WarmUpTill
parent
57d78a996a
commit
6ccbaad41c
63
lib/utils/time-helpers.cpp
Normal file
63
lib/utils/time-helpers.cpp
Normal file
@@ -0,0 +1,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
|
||||
Reference in New Issue
Block a user