( date: DateArg<DateType>, weekYear: number, options?: SetWeekYearOptions<ResultDate>, )
| 61 | * //=> Sat Jan 01 2005 00:00:00 |
| 62 | */ |
| 63 | export function setWeekYear< |
| 64 | DateType extends Date, |
| 65 | ResultDate extends Date = DateType, |
| 66 | >( |
| 67 | date: DateArg<DateType>, |
| 68 | weekYear: number, |
| 69 | options?: SetWeekYearOptions<ResultDate>, |
| 70 | ): ResultDate { |
| 71 | const defaultOptions = getDefaultOptions(); |
| 72 | const firstWeekContainsDate = |
| 73 | options?.firstWeekContainsDate ?? |
| 74 | options?.locale?.options?.firstWeekContainsDate ?? |
| 75 | defaultOptions.firstWeekContainsDate ?? |
| 76 | defaultOptions.locale?.options?.firstWeekContainsDate ?? |
| 77 | 1; |
| 78 | |
| 79 | const diff = differenceInCalendarDays( |
| 80 | toDate(date, options?.in), |
| 81 | startOfWeekYear(date, options), |
| 82 | options, |
| 83 | ); |
| 84 | |
| 85 | const firstWeek = constructFrom(options?.in || date, 0); |
| 86 | firstWeek.setFullYear(weekYear, 0, firstWeekContainsDate); |
| 87 | firstWeek.setHours(0, 0, 0, 0); |
| 88 | |
| 89 | const date_ = startOfWeekYear(firstWeek, options); |
| 90 | date_.setDate(date_.getDate() + diff); |
| 91 | return date_; |
| 92 | } |
no test coverage detected