我怎样才能获得明天后一天和下一天的第二天?

时间:2019-08-19 14:01:17

标签: javascript

我正尝试在未来三天的天气应用程序中显示天气预报。对于“明天”,我不会让自己复杂化,因此我只显示“明天”,但是我还需要显示后天和隔天->

所以我可以显示“明天:21º/13º,[明天后一天] = ....,[天后一天] =...。”

我正在尝试使用getDay()方法来获取它,因为它返回的数组是从0到6,所以我试图将其与我根据星期几制作的数组进行比较,其顺序与方法返回对程序说:“嘿,如果您得到getDay === 1,则在我的数组“ days [1]”上显示此位置(其中是字符串“ Monday”)。但是我做错了并且无法获得我正在寻找的反馈。

  function calculateDay () {


            const days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
            let today = new Date();
            let currentDay = today.getDay();
            let trueDay;
            let afterTom = trueDay + 1;
            let dayNext = trueDay + 2;

            if (currentDay === 0) {

                trueDay === days[0];

            } 


        } 

我对此很迷茫,无法弄清楚如何获取反馈以及如何获取两个不同的反馈数据(后天和后天)。

此前端padawan会提供任何帮助。

预先感谢大家!

2 个答案:

答案 0 :(得分:0)

您需要做的就是增加一天的时间,检查它是否不大于6。如果是,那么您需要重新开始计数,将日期设置为0

下面的代码将帮助您以一种易于理解的方式理解

const days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];


function calculateDay() {
  let today = new Date();
  let currentDay = today.getDay();
  console.log("Today:", days[currentDay])

  let tomorrow = currentDay + 1; //INCREASE A DAY
  if (tomorrow > 6) { //CHECK IF IS BIGGER THAN 6 (6 = saturday)
    tomorrow = 0;
  }
  console.log("Tomorrow:", days[tomorrow])

  let dayAfter = tomorrow + 1;
  if (dayAfter > 6) {
    dayAfter = 0;
  }
  console.log("Day After Tomorrow:", days[dayAfter])

  let thirdDay = dayAfter + 1;
  if (thirdDay > 6) {
    thirdDay = 0;
  }
  console.log("Third Day:", days[thirdDay])

}

calculateDay()

答案 1 :(得分:0)

如果我对您的理解正确,则无需使用IF语句。 只需计算正确的日索引,然后使用模数(%)来确保您不会超出天数组即可:

function calculateDay () {
            const days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
            let today = new Date();
            let currentDay = today.getDay();
            let trueDay = days[currentDay];
            let afterTom = days[((trueDay + 1) % days.length)];
            let dayNext = days[((trueDay + 2) % days.length)];
            } 
        } 

但是我不确定为什么您明天打电话给明天+ 1,那不是明天吗?