api.go 924 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package datamodel
  2. import (
  3. "time"
  4. )
  5. // GetLastDay get data daily
  6. func GetLastDay() time.Time {
  7. //return time.Date(2018, 11, 18, 0, 0, 0, 0, time.Local)
  8. now := time.Now()
  9. return time.Date(now.Year(), now.Month(), now.Day()-1, 0, 0, 0, 0, time.Local)
  10. }
  11. // GetLastWeek get data weekly
  12. func GetLastWeek() time.Time {
  13. //return time.Date(2018, 11, 18, 0, 0, 0, 0, time.Local)
  14. now := time.Now()
  15. gDate := getTuesday(now)
  16. if now.Before(gDate.Add(12 * time.Hour)) {
  17. return gDate.AddDate(0, 0, -9)
  18. }
  19. return gDate.AddDate(0, 0, -2)
  20. }
  21. func beginningOfDay(t time.Time) time.Time {
  22. d := time.Duration(-t.Hour()) * time.Hour
  23. return t.Truncate(time.Hour).Add(d)
  24. }
  25. func getTuesday(now time.Time) time.Time {
  26. t := beginningOfDay(now)
  27. weekday := int(t.Weekday())
  28. if weekday == int(time.Sunday) {
  29. weekday = int(time.Saturday) + 1
  30. }
  31. d := time.Duration(-weekday+2) * 24 * time.Hour
  32. return t.Truncate(time.Hour).Add(d)
  33. }