首页 > 解决方案 > 如何使用reactjs计算所选日期范围内的星期二数?

问题描述

我将从日历中选择日期范围,例如我将选择从6 月 10 日到 7 月 26 日的日期范围。我需要计算所选范围内的星期二和星期四的数量

标签: reactjscalendar

解决方案


您可以使用 moment 库(http://momentjs.com ,您可以使用npm install moment将其添加到项目中,然后将其导入到您需要的组件中)。

  countDays = () => {
    let { date1, date2 } = this.state;
    let tuesdays = 0,
      thursdays = 0;

    date1 = moment(date1);
    date2 = moment(date2);
    let fromDayWeek = date1.isoWeeks();
    let toDayWeek = date2.isoWeeks();
    let fromDay = date1.isoWeekday();
    let toDay = date2.isoWeekday();
    let weekIteration = toDayWeek - fromDayWeek;
    let j = 1,
      daysOfWeek = 7;

    for (let i = 0; i <= weekIteration; i++) {
      // iterating throught days - first day = 1 = monday, last day = 7 = sunday
      j = i === 0 ? fromDay : 1; // we want to start counting for the first selected date
      daysOfWeek = i === weekIteration - 1 ? toDay : 7; // we want to end counting for the last selected date

      for (j; j <= daysOfWeek; j++) {
        // if it's tuesday, it is 2 day of week
        if (j === 2) {
          tuesdays++;
        }
        // if it's thursday, it is 4 day of week
        if (j === 4) {
          thursdays++;
        }
      }
    }

    return {
      tuesdays,
      thursdays
    };
  };

在这里查看一个完全有效的解决方案: https ://codesandbox.io/s/x2w6nq6npq


推荐阅读