Passed
Push — master ( df7d70...d7b12b )
by Serhii
01:18
created

internal/utils/utils.go   A

Size/Duplication

Total Lines 71
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
cc 14
eloc 39
dl 0
loc 71
rs 10
c 0
b 0
f 0

14 Methods

Rating   Name   Duplication   Size   Complexity  
A utils.Errorf 0 2 1
A utils.SubDays 0 2 1
A utils.SubMinutes 0 2 1
A utils.AddTime 0 2 1
A utils.UnixFromFutureDate 0 2 1
A utils.SubHours 0 2 1
A utils.AddMinutes 0 2 1
A utils.SubWeeks 0 2 1
A utils.UnixFromPastDate 0 2 1
A utils.SubSeconds 0 2 1
A utils.SubTime 0 2 1
A utils.SubMonths 0 2 1
A utils.AddHours 0 2 1
A utils.SubYears 0 2 1
1
package utils
2
3
import (
4
	"fmt"
5
	"time"
6
)
7
8
const (
9
	second time.Duration = time.Second
10
	minute time.Duration = time.Minute
11
	hour   time.Duration = time.Hour
12
	day    time.Duration = hour * 24
13
	week   time.Duration = day * 7
14
	month  time.Duration = day * 30
15
	year   time.Duration = day * 365
16
)
17
18
func UnixFromPastDate(subDuration time.Duration) int {
19
	return int(SubTime(subDuration).UnixNano() / 1000000000)
20
}
21
22
func UnixFromFutureDate(duration time.Duration) int {
23
	return int(AddTime(duration).UnixNano() / 1000000000)
24
}
25
26
func Errorf(msg string, a ...interface{}) error {
27
	return fmt.Errorf("[Timeago]: "+msg, a...)
28
}
29
30
func SubTime(duration time.Duration) time.Time {
31
	return time.Now().Add(-duration)
32
}
33
34
func AddTime(duration time.Duration) time.Time {
35
	return time.Now().Add(duration)
36
}
37
38
func SubSeconds(duration time.Duration) time.Time {
39
	return SubTime(second * duration)
40
}
41
42
func SubMinutes(duration time.Duration) time.Time {
43
	return SubTime(minute * duration)
44
}
45
46
func AddMinutes(duration time.Duration) time.Time {
47
	return AddTime(minute * duration)
48
}
49
50
func SubHours(duration time.Duration) time.Time {
51
	return SubTime(hour * duration)
52
}
53
54
func AddHours(duration time.Duration) time.Time {
55
	return AddTime(hour * duration)
56
}
57
58
func SubDays(duration time.Duration) time.Time {
59
	return SubTime(day * duration)
60
}
61
62
func SubWeeks(duration time.Duration) time.Time {
63
	return SubTime(week * duration)
64
}
65
66
func SubMonths(duration time.Duration) time.Time {
67
	return SubTime(month * duration)
68
}
69
70
func SubYears(duration time.Duration) time.Time {
71
	return SubTime(year * duration)
72
}
73