golang 通过ISOWeek翻转得到周的日期时间

来源:互联网 发布:猎豹浏览器精简优化版 编辑:程序博客网 时间:2024/05/22 04:51
func firstDayOfISOWeek(year int, week int, timezone *time.Location) time.Time {    date := time.Date(year, 0, 0, 0, 0, 0, 0, timezone)    isoYear, isoWeek := date.ISOWeek()    for date.Weekday() != time.Monday { // iterate back to Monday        date = date.AddDate(0, 0, -1)        isoYear, isoWeek = date.ISOWeek()    }    for isoYear < year { // iterate forward to the first day of the first week        date = date.AddDate(0, 0, 1)        isoYear, isoWeek = date.ISOWeek()    }    for isoWeek < week { // iterate forward to the first day of the given week        date = date.AddDate(0, 0, 1)        isoYear, isoWeek = date.ISOWeek()    }    return date}
0 0
原创粉丝点击