123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- package tool
- import (
- "fmt"
- "time"
- )
- //返回周日期
- func GetWeekDate(date time.Time) [2]string {
- w := int(date.Weekday()) //获取周几
- //timeFormat := "20060102" //对管理后台友好的格式
- timeFormat := "2006-01-02"
- dateTemp := date.Format(timeFormat)
- var out [2]string
- var s,e string
- switch w {
- case 0:
- //周日
- h := fmt.Sprintf("-%dh", 24*6) //减去24小时(前一天)
- dh, _ := time.ParseDuration(h)
- s = date.Add(dh).Format(timeFormat)
- e = dateTemp
- break
- case 1:
- //周一
- h := fmt.Sprintf("+%dh", 24*6) //减去24小时(前一天)
- dh, _ := time.ParseDuration(h)
- s = dateTemp
- e = date.Add(dh).Format(timeFormat)
- break
- default:
- h := fmt.Sprintf("-%dh", 24*(w-1)) //减去24小时(前一天)
- dh, _ := time.ParseDuration(h)
- s = date.Add(dh).Format(timeFormat)
- h2 := fmt.Sprintf("+%dh", 24*(7-w)) //减去24小时(前一天)
- dh2, _ := time.ParseDuration(h2)
- e = date.Add(dh2).Format(timeFormat)
- }
- out[0] = s
- out[1] = e
- return out
- }
- //获取传入的时间所在月份的第一天,即某月第一天的0点。如传入time.Now(), 返回当前月份的第一天0点时间。
- func GetFirstDateOfMonth(d time.Time) time.Time {
- d = d.AddDate(0, 0, -d.Day() + 1)
- return GetZeroTime(d)
- }
- //获取传入的时间所在月份的最后一天,即某月最后一天的0点。如传入time.Now(), 返回当前月份的最后一天0点时间。
- func GetLastDateOfMonth(d time.Time) time.Time {
- return GetFirstDateOfMonth(d).AddDate(0, 1, -1)
- }
- //获取某一天的0点时间
- func GetZeroTime(d time.Time) time.Time {
- return time.Date(d.Year(), d.Month(), d.Day(), 0, 0, 0, 0, d.Location())
- }
- //获取时间范围端的周
- func GetTimeWeek(sdate string,num int) map[string][2]string {
- var listMap map[string][2]string /*创建集合 */
- listMap = make(map[string][2]string)
- for i := 1; i <= num; i++ {
- h := fmt.Sprintf("-%dh", 24*i) //减去24小时(前一天)
- dh, _ := time.ParseDuration(h)
- timeTemp := time.Now().Add(dh)
- date := GetWeekDate(timeTemp)
- listMap[date[0]+"~"+date[1]] = date
- }
- return listMap
- }
- //获取月
- func GetTimeMonth(num int,symbol string) map[string][2]string{
- var listMap map[string][2]string /*创建集合 */
- listMap = make(map[string][2]string)
- for i := 0; i <= num; i++ {
- var month time.Time
- if symbol == "+" {
- month = time.Now().AddDate(0, i, -time.Now().Day() + 1)
- }else{
- month = time.Now().AddDate(0, -i, -time.Now().Day() + 1)
- }
- sdate := GetFirstDateOfMonth(month)
- edate := GetLastDateOfMonth(month)
- var dateTemp [2]string
- dateTemp[0] = sdate.Format("2006-01-02")
- dateTemp[1] = edate.Format("2006-01-02")
- listMap[dateTemp[0] + "~" + dateTemp[1]] = dateTemp
- }
- return listMap
- }
|