39 lines
924 B
Go
39 lines
924 B
Go
package datamodel
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
// GetLastDay get data daily
|
|
func GetLastDay() time.Time {
|
|
//return time.Date(2018, 11, 18, 0, 0, 0, 0, time.Local)
|
|
now := time.Now()
|
|
return time.Date(now.Year(), now.Month(), now.Day()-1, 0, 0, 0, 0, time.Local)
|
|
}
|
|
|
|
// GetLastWeek get data weekly
|
|
func GetLastWeek() time.Time {
|
|
//return time.Date(2018, 11, 18, 0, 0, 0, 0, time.Local)
|
|
now := time.Now()
|
|
gDate := getTuesday(now)
|
|
if now.Before(gDate.Add(12 * time.Hour)) {
|
|
return gDate.AddDate(0, 0, -9)
|
|
}
|
|
return gDate.AddDate(0, 0, -2)
|
|
}
|
|
|
|
func beginningOfDay(t time.Time) time.Time {
|
|
d := time.Duration(-t.Hour()) * time.Hour
|
|
return t.Truncate(time.Hour).Add(d)
|
|
}
|
|
|
|
func getTuesday(now time.Time) time.Time {
|
|
t := beginningOfDay(now)
|
|
weekday := int(t.Weekday())
|
|
if weekday == int(time.Sunday) {
|
|
weekday = int(time.Saturday) + 1
|
|
}
|
|
d := time.Duration(-weekday+2) * 24 * time.Hour
|
|
return t.Truncate(time.Hour).Add(d)
|
|
}
|