소개
주어진 주 번호에 해당하는 날짜 범위를 결정하는 것은 다음과 같습니다. 많은 응용 프로그램의 공통 요구 사항입니다. Golang은 주 번호를 얻는 편리한 기능을 제공하지만 해당 날짜 범위를 검색하는 기본 제공 메커니즘이 부족합니다. 이 기사에서는 이 문제를 해결하기 위한 실용적인 Golang 솔루션을 제시합니다.
사용자 정의 함수 구현
특정 주의 날짜 범위를 설정하려면 다음 단계를 수행해야 합니다. :
이러한 원칙을 바탕으로 다음과 같이 WeekStart()라는 사용자 정의 함수를 만들 수 있습니다.
func WeekStart(year, week int) time.Time { // Start from middle of the year t := time.Date(year, 7, 1, 0, 0, 0, 0, time.UTC) // Align to Monday if t.Weekday() == time.Sunday { t = t.AddDate(0, 0, -6) } else { t = t.AddDate(0, 0, -int(t.Weekday())+1) } // Adjust for week difference y, w := t.ISOWeek() t = t.AddDate(0, 0, (week-w)*7) return t }
사용 및 예
이 기능을 활용하려면 연도와 원하는 주 번호를 다음과 같이 전달하세요. 인수:
fmt.Println(WeekStart(2018, 1)) // Output: 2018-01-01 00:00:00 +0000 UTC fmt.Println(WeekStart(2018, 2)) // Output: 2018-01-08 00:00:00 +0000 UTC
주의 마지막 날 검색
주의 첫 번째 날과 마지막 날이 모두 필요한 경우 함수를 확장하여 반환할 수 있습니다. 종료 날짜:
func WeekRange(year, week int) (start, end time.Time) { start = WeekStart(year, week) end = start.AddDate(0, 0, 6) return }
이 확장 기능을 사용하면 다음이 가능합니다. 사용법:
fmt.Println(WeekRange(2018, 1)) // Output: 2018-01-01 00:00:00 +0000 UTC 2018-01-07 00:00:00 +0000 UTC fmt.Println(WeekRange(2018, 2)) // Output: 2018-01-08 00:00:00 +0000 UTC 2018-01-14 00:00:00 +0000 UTC
이 사용자 정의 구현을 사용하면 주어진 주 번호에 해당하는 날짜 범위를 쉽게 검색할 수 있으므로 Golang 애플리케이션에서 달력 조작 및 데이터 분석을 위한 귀중한 도구가 됩니다.
위 내용은 Go의 주 번호에서 날짜 범위를 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!