report_test.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. package home
  2. import (
  3. "fmt"
  4. "testing"
  5. "time"
  6. )
  7. func TestInsertGoal(t *testing.T) {
  8. //now:=
  9. now := time.Now()
  10. // 获取本月的第一天
  11. firstOfMonth := time.Date(now.Year(), 2, 1, 0, 0, 0, 0, now.Location())
  12. // 获取本月的最后一天
  13. lastOfMonth := firstOfMonth.AddDate(0, 1, -1)
  14. fmt.Println("本月的开始日期:", firstOfMonth.Format("2006-01-02"))
  15. fmt.Println("本月的结束日期:", lastOfMonth.Format("2006-01-02"))
  16. }
  17. //
  18. ////判断时间是当年的第几周
  19. ////
  20. //func WeekByDate(t time.Time) string {
  21. //
  22. // yearDay := t.YearDay()
  23. //
  24. // yearFirstDay := t.AddDate(0, 0, -yearDay+1)
  25. //
  26. // firstDayInWeek := int(yearFirstDay.Weekday())
  27. //
  28. // //今年第一周有几天
  29. //
  30. // firstWeekDays := 1
  31. //
  32. // if firstDayInWeek != 0 {
  33. //
  34. // firstWeekDays = 7 - firstDayInWeek + 1
  35. //
  36. // }
  37. //
  38. // var week int
  39. // Weeks := WeekByDates()
  40. // if yearDay <= firstWeekDays {
  41. //
  42. // week = 1
  43. //
  44. // } else {
  45. //
  46. // week = (yearDay-firstWeekDays)/7 + 2
  47. //
  48. // }
  49. //
  50. // return fmt.Sprintf("%d第%d周", t.Year(), week-gconv.Int(Weeks)+1)
  51. //
  52. //}
  53. //func WeekByDates() int {
  54. // l, _ := time.LoadLocation("Asia/Shanghai")
  55. // now := time.Now()
  56. // // 获取本月的第一天
  57. // firstOfMonth := time.Date(now.Year(), now.Month(), 1, 0, 0, 0, 0, now.Location())
  58. // endTime, _ := time.ParseInLocation("2006-01-02", firstOfMonth.Format("2006-01-02"), l)
  59. // t := endTime
  60. // yearDay := t.YearDay()
  61. //
  62. // yearFirstDay := t.AddDate(0, 0, -yearDay+1)
  63. //
  64. // firstDayInWeek := int(yearFirstDay.Weekday())
  65. //
  66. // //今年第一周有几天
  67. //
  68. // firstWeekDays := 1
  69. //
  70. // if firstDayInWeek != 0 {
  71. //
  72. // firstWeekDays = 7 - firstDayInWeek + 1
  73. //
  74. // }
  75. //
  76. // var week int
  77. //
  78. // if yearDay <= firstWeekDays {
  79. //
  80. // week = 1
  81. //
  82. // } else {
  83. //
  84. // week = (yearDay-firstWeekDays)/7 + 2
  85. //
  86. // }
  87. //
  88. // return week
  89. //
  90. //}
  91. //
  92. //type WeekDate struct {
  93. // WeekTh string
  94. //
  95. // StartTime time.Time
  96. //
  97. // EndTime time.Time
  98. //}
  99. //
  100. //// 将开始时间和结束时间分割为周为单位
  101. //
  102. //func GroupByWeekDate(startTime, endTime time.Time) []WeekDate {
  103. //
  104. // weekDate := make([]WeekDate, 0)
  105. //
  106. // diffDuration := endTime.Sub(startTime)
  107. //
  108. // days := int(math.Ceil(float64(diffDuration/(time.Hour*24)))) + 1
  109. //
  110. // currentWeekDate := WeekDate{}
  111. //
  112. // currentWeekDate.WeekTh = WeekByDate(endTime)
  113. //
  114. // currentWeekDate.EndTime = endTime
  115. //
  116. // currentWeekDay := int(endTime.Weekday())
  117. //
  118. // if currentWeekDay == 0 {
  119. //
  120. // currentWeekDay = 7
  121. //
  122. // }
  123. //
  124. // currentWeekDate.StartTime = endTime.AddDate(0, 0, -currentWeekDay+1)
  125. //
  126. // nextWeekEndTime := currentWeekDate.StartTime
  127. //
  128. // weekDate = append(weekDate, currentWeekDate)
  129. //
  130. // for i := 0; i < (days-currentWeekDay)/7; i++ {
  131. //
  132. // weekData := WeekDate{}
  133. //
  134. // weekData.EndTime = nextWeekEndTime
  135. //
  136. // weekData.StartTime = nextWeekEndTime.AddDate(0, 0, -7)
  137. //
  138. // weekData.WeekTh = WeekByDate(weekData.StartTime)
  139. //
  140. // nextWeekEndTime = weekData.StartTime
  141. //
  142. // weekDate = append(weekDate, weekData)
  143. //
  144. // }
  145. //
  146. // if lastDays := (days - currentWeekDay) % 7; lastDays > 0 {
  147. //
  148. // lastData := WeekDate{}
  149. //
  150. // lastData.EndTime = nextWeekEndTime
  151. //
  152. // lastData.StartTime = nextWeekEndTime.AddDate(0, 0, -lastDays)
  153. //
  154. // lastData.WeekTh = WeekByDate(lastData.StartTime)
  155. //
  156. // weekDate = append(weekDate, lastData)
  157. //
  158. // }
  159. //
  160. // return weekDate
  161. //
  162. //}