计算两个日期相差天数:time.Sub()
计算日期为当前年的第几周:ISOWeek()方法
package mainimport ("fmt""time"
)// 计算时间差(天数)
func SubDays(t1, t2 time.Time) (day int) {day = int(t1.Sub(t2).Hours() / 24)return
}func main() {// (1) time.Sub() - 计算两个time类型日期相差天数:timeFormat := "2006-01-02 15:04:05" // 默认转换日期格式beginTime, err := time.Parse(timeFormat, "2020-09-08 13:47:59") // string -> timeif err != nil {fmt.Println("time.Parse error")}endTime, err := time.Parse(timeFormat, "2020-09-18 13:47:59") // string -> timeif err != nil {fmt.Println("time.Parse error")}subDays := SubDays(endTime, beginTime) // 参数1:结束日期: 参数2:开始靠前fmt.Println("相差天数1 = ", subDays)subDays1 := SubDays(time.Now(), beginTime) // time.Now() 当前日期fmt.Println("相差天数2 = ", subDays1)// (2) time包的ISOWeek()方法 - 根据提供日期计算当前是一年中的第几周,常用在数据库按周分表的场景下:year, week := beginTime.ISOWeek() // time类型对象专用方法:ISOWeek()fmt.Printf("%d年第%d周\n", year, week)
}