спеціалізована СУБД для зберігання та обробки показань датчиків та лічильників
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
diploma/timeutil/timeutil.go

39 lines
867 B

package timeutil
import "time"
func FirstSecondInPeriod(since time.Time, period string) (_ time.Time) {
y, m, d := since.Date()
switch period {
case "h":
h := since.Hour()
return time.Date(y, m, d, h, 0, 0, 0, time.Local)
case "d":
return time.Date(y, m, d, 0, 0, 0, 0, time.Local)
case "m":
return time.Date(y, m, 1, 0, 0, 0, 0, time.Local)
default:
return since
}
}
func LastSecondInPeriod(until time.Time, period string) (_ time.Time) {
y, m, d := until.Date()
switch period {
case "h":
h := until.Hour()
return time.Date(y, m, d, h, 59, 59, 0, time.Local)
case "d":
return time.Date(y, m, d, 23, 59, 59, 0, time.Local)
case "m":
tm := time.Date(y, m, 1, 23, 59, 59, 0, time.Local)
// Додаю місяць
tm = tm.AddDate(0, 1, 0)
// Віднімаю день
return tm.AddDate(0, 0, -1)
default:
return until
}
}