You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JavaScript实现获取距离指定下一个星期几天数的函数?

解决方案

首先补全缺失的核心逻辑与定义,以下是完整的可运行实现代码:

function howFarIs(day) {
    // 定义标准星期数组,索引对应Date.getDay()返回值(0=周日,1=周一…6=周六)
    const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
    
    // 大小写不敏感匹配,获取标准星期名称
    const targetDay = days.find(d => d.toLowerCase() === day.toLowerCase());
    const targetIndex = days.indexOf(targetDay);
    
    // 获取今天的星期索引
    const todayIndex = new Date().getDay();
    
    // 计算距离下一个目标星期的天数,兼容目标在今天前后的情况
    const daysLeft = (targetIndex - todayIndex + 7) % 7;
    
    // 返回对应格式结果
    if (daysLeft === 0) {
        return `Hey, today is ${targetDay} =)`;
    } else {
        return `It's ${daysLeft} day(s) left till ${targetDay}.`;
    }
}

关键逻辑说明

  • 大小写兼容匹配:通过toLowerCase()统一转换输入与标准星期名称,确保'friday'、'FRIDAY'这类输入都能匹配到'Friday'。
  • 通用天数计算:(targetIndex - todayIndex + 7) % 7的公式无需分支判断,就能处理两种场景:
    • 目标星期在今天之后(如周四→周五),直接得到间隔天数;
    • 目标星期在今天之前(如周四→周三),自动计算出到下一周该星期的间隔天数。
  • 格式合规输出:直接使用匹配到的标准星期名称(首字母大写),满足输出格式要求。

测试示例

// 假设调用当天为10月22日(周四,索引4)
howFarIs('friday'); // 返回 "It's 1 day(s) left till Friday."
howFarIs('Thursday'); // 返回 "Hey, today is Thursday =)"
howFarIs('sunday'); // 返回 "It's 3 day(s) left till Sunday."

内容的提问来源于stack exchange,提问作者Taras Levchuk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 10:31:12