Javascript获取下周二或周五的日期(最近)

时间:2014-08-25 18:53:33

标签: javascript date

我需要编写一个函数来返回下周二或下周五的日期(例如:2014/08/28),以最近的一天为准。但有一点狡辩:如果今天是星期二或星期五,如果它是在22:00之前它应该返回今天的日期,另一方面如果它在22:00之后或等于22 :00它应该在下周二或周五的日期返回,以下一个为止。

我不知道如何开始编码。

此致

1 个答案:

答案 0 :(得分:5)

检查下面的sninppet。也许我可以让它更优化,但或多或​​少,我只是遵循上面评论中的伪代码。

function closest_tuesday_or_friday() {
  var today = new Date(), tuesday, friday, day, closest;

  if(today.getDay() == 2 || today.getDay() == 5){
    if(today.getHours() < 22){
      return today.getFullYear() + "/" + (today.getMonth() + 1) + "/" + today.getDate();
    }
  }else{
    day = today.getDay();
    tuesday = today.getDate() - day + (day === 0 ? -6 : 2);
    friday = today.getDate() - day + (day === 0 ? -6 : 5);
  }

  if(tuesday < friday){
    closest = new Date(today.setDate(tuesday));
  }else{
    closest = new Date(today.setDate(friday)); 
  }
  return closest.getFullYear() + "/" + (closest.getMonth() + 1) + "/" + closest.getDate();
}

console.log(closest_tuesday_or_friday());

Working jsBin