@@ -577,32 +577,33 @@ export function dayIndexInWeek(date?: Date) {
577
577
export function previousDaysInWeek ( date : Date , weekStartDayIndex : WeekDaysIndexType = 0 ) {
578
578
if ( ! dateIsValid ( date ) ) return [ ] ;
579
579
580
- const dayIndex = dayIndexInWeek ( date ) ;
581
-
582
580
const previousDays : Date [ ] = [ ] ;
583
581
584
- for ( let i = weekStartDayIndex ; i < dayIndex ; i ++ ) {
585
- previousDays . push ( dayjs ( date ) . day ( i ) . toDate ( ) ) ;
582
+ let i = 1 ;
583
+ let previousDay = dateAdd ( date , - i , "day" ) ;
584
+ while ( dayIndexInWeek ( previousDay ) !== weekStartDayIndex ) {
585
+ previousDays . push ( previousDay ) ;
586
+ i ++ ;
587
+ previousDay = dateAdd ( date , - i , "day" ) ;
586
588
}
587
589
588
- return previousDays ;
590
+ return previousDays . sort ( ( a , b ) => {
591
+ if ( dateIsAfter ( a , b , "date" ) ) return 1 ;
592
+ return - 1 ;
593
+ } ) ;
589
594
}
590
595
591
596
export function nextDaysInWeek ( date : Date , weekStartDayIndex : WeekDaysIndexType = 0 ) {
592
597
if ( ! dateIsValid ( date ) ) return [ ] ;
593
598
594
- const dayIndex = dayIndexInWeek ( date ) ;
595
-
596
599
const nextDays : Date [ ] = [ ] ;
597
600
598
- let i = dayIndex + 1 ;
599
-
600
- if ( weekStartDayIndex > i ) {
601
- i = weekStartDayIndex ;
602
- }
603
-
604
- for ( i ; i <= 6 ; i ++ ) {
605
- nextDays . push ( dayjs ( date ) . day ( i ) . toDate ( ) ) ;
601
+ let i = 1 ;
602
+ let nextDay = dateAdd ( date , i , "day" ) ;
603
+ while ( dayIndexInWeek ( nextDay ) !== weekStartDayIndex ) {
604
+ nextDays . push ( nextDay ) ;
605
+ i ++ ;
606
+ nextDay = dateAdd ( date , i , "day" ) ;
606
607
}
607
608
608
609
return nextDays ;
0 commit comments