( date: DateArg<DateType>, options?: StartOfWeekYearOptions<ResultDate>, )
| 58 | * //=> Mon Jan 03 2005 00:00:00 |
| 59 | */ |
| 60 | export function startOfWeekYear< |
| 61 | DateType extends Date, |
| 62 | ResultDate extends Date = DateType, |
| 63 | >( |
| 64 | date: DateArg<DateType>, |
| 65 | options?: StartOfWeekYearOptions<ResultDate>, |
| 66 | ): ResultDate { |
| 67 | const defaultOptions = getDefaultOptions(); |
| 68 | const firstWeekContainsDate = |
| 69 | options?.firstWeekContainsDate ?? |
| 70 | options?.locale?.options?.firstWeekContainsDate ?? |
| 71 | defaultOptions.firstWeekContainsDate ?? |
| 72 | defaultOptions.locale?.options?.firstWeekContainsDate ?? |
| 73 | 1; |
| 74 | |
| 75 | const year = getWeekYear(date, options); |
| 76 | const firstWeek = constructFrom(options?.in || date, 0); |
| 77 | firstWeek.setFullYear(year, 0, firstWeekContainsDate); |
| 78 | firstWeek.setHours(0, 0, 0, 0); |
| 79 | const _date = startOfWeek(firstWeek, options); |
| 80 | return _date; |
| 81 | } |
no test coverage detected