Blame view

天文台pc/tianwentai-ui/node_modules/react-day-picker/src/contexts/Modifiers/utils/isDateInRange.ts 680 Bytes
bc518174   王天杨   提交两个项目文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
  import { differenceInCalendarDays, isSameDay } from 'date-fns';
  
  import { DateRange } from 'types/Matchers';
  
  /** Return `true` whether `date` is inside `range`. */
  export function isDateInRange(date: Date, range: DateRange): boolean {
    let { from, to } = range;
    if (from && to) {
      const isRangeInverted = differenceInCalendarDays(to, from) < 0;
      if (isRangeInverted) {
        [from, to] = [to, from];
      }
      const isInRange =
        differenceInCalendarDays(date, from) >= 0 &&
        differenceInCalendarDays(to, date) >= 0;
      return isInRange;
    }
    if (to) {
      return isSameDay(to, date);
    }
    if (from) {
      return isSameDay(from, date);
    }
    return false;
  }