gitee.com/zhongguo168a/gocodes@v0.0.0-20230609140523-e1828349603f/myx/timeutil/time-util.go (about)

     1  package timeutil
     2  
     3  import (
     4  	"time"
     5  )
     6  
     7  const DAY_SECOND = 3600 * 24
     8  const MINUTE_SECOND = 60
     9  
    10  //获取传入的时间所在月份的第一天,即某月第一天的0点。如传入time.Now(), 返回当前月份的第一天0点时间。
    11  func GetFirstDateOfMonth(d time.Time) time.Time {
    12  	d = d.AddDate(0, 0, -d.Day()+1)
    13  	return GetZeroTimeOfDay(d)
    14  }
    15  
    16  //获取传入的时间所在月份的最后一天,即某月最后一天的0点。如传入time.Now(), 返回当前月份的最后一天0点时间。
    17  func GetLastDateOfMonth(d time.Time) time.Time {
    18  	return GetFirstDateOfMonth(d).AddDate(0, 1, -1)
    19  }
    20  
    21  //获取某一天的0点时间
    22  func GetZeroTimeOfWeek(d time.Time) time.Time {
    23  	offset := int(time.Monday - d.Weekday())
    24  	if offset > 0 {
    25  		offset = -6
    26  	}
    27  	return time.Date(d.Year(), d.Month(), d.Day(), 0, 0, 0, 0, time.Local).AddDate(0, 0, offset)
    28  }
    29  
    30  //获取某一天的0点时间
    31  func GetZeroTimeOfDay(d time.Time) time.Time {
    32  	return time.Date(d.Year(), d.Month(), d.Day(), 0, 0, 0, 0, d.Location())
    33  }
    34  
    35  //获取某一天的0点时间
    36  func GetZeroTimeOfMinute(d time.Time) time.Time {
    37  	return time.Date(d.Year(), d.Month(), d.Day(), d.Hour(), d.Minute(), 0, 0, d.Location())
    38  }
    39  
    40  //获取某一天的0点时间
    41  func Z在今天范围(d int) bool {
    42  	diff := time.Now().Sub(GetZeroTimeOfDay(time.Unix(int64(d), 0)))
    43  	if int(diff.Hours()) >= 24 {
    44  		return false
    45  	}
    46  
    47  	return true
    48  }