File: time-helpers.cpp

package info (click to toggle)
obs-advanced-scene-switcher 1.32.8-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 43,492 kB
  • sloc: xml: 297,593; cpp: 147,875; python: 387; sh: 280; ansic: 170; makefile: 33
file content (63 lines) | stat: -rw-r--r-- 1,449 bytes parent folder | download | duplicates (2)
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