向日期添加工作日

JavaScriptJavaScriptBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,我们将探索一个JavaScript函数,该函数有助于计算在添加给定数量的工作日后的日期。该函数使用数组操作和日期迭代来增加起始日期,同时考虑周末。本实验将帮助你理解如何在JavaScript中操作日期,并将业务逻辑应用于日期计算。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("`JavaScript`")) -.-> javascript/BasicConceptsGroup(["`Basic Concepts`"]) javascript(("`JavaScript`")) -.-> javascript/AdvancedConceptsGroup(["`Advanced Concepts`"]) javascript/BasicConceptsGroup -.-> javascript/variables("`Variables`") javascript/BasicConceptsGroup -.-> javascript/data_types("`Data Types`") javascript/BasicConceptsGroup -.-> javascript/arith_ops("`Arithmetic Operators`") javascript/BasicConceptsGroup -.-> javascript/comp_ops("`Comparison Operators`") javascript/BasicConceptsGroup -.-> javascript/cond_stmts("`Conditional Statements`") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("`Higher-Order Functions`") javascript/AdvancedConceptsGroup -.-> javascript/destr_assign("`Destructuring Assignment`") subgraph Lab Skills javascript/variables -.-> lab-28129{{"`向日期添加工作日`"}} javascript/data_types -.-> lab-28129{{"`向日期添加工作日`"}} javascript/arith_ops -.-> lab-28129{{"`向日期添加工作日`"}} javascript/comp_ops -.-> lab-28129{{"`向日期添加工作日`"}} javascript/cond_stmts -.-> lab-28129{{"`向日期添加工作日`"}} javascript/higher_funcs -.-> lab-28129{{"`向日期添加工作日`"}} javascript/destr_assign -.-> lab-28129{{"`向日期添加工作日`"}} end

向给定日期添加工作日的函数

要通过添加给定数量的工作日来计算未来日期,你可以使用 addWeekDays 函数。步骤如下:

  1. 打开终端/SSH 并输入 node 开始练习编码。
  2. 使用 addWeekDays 函数,该函数接受两个参数:startDatecount
  3. startDate 是你要开始添加工作日的日期。
  4. count 是你要添加到起始日期的工作日数量。
  5. 该函数使用 Array.from() 方法构造一个数组,并将其长度设置为要添加的工作日数量 count
  6. Array.prototype.reduce() 方法用于遍历数组,从 startDate 开始,并使用 Date.prototype.getDate()Date.prototype.setDate() 对其进行递增。
  7. 该函数检查当前 date 是否在周末。
  8. 如果当前 date 在周末,该函数会通过添加一天或两天来再次更新它,使其成为工作日。
  9. 该函数不考虑法定节假日。
const addWeekDays = (startDate, count) =>
  Array.from({ length: count }).reduce((date) => {
    date = new Date(date.setDate(date.getDate() + 1));
    if (date.getDay() % 6 === 0)
      date = new Date(date.setDate(date.getDate() + (date.getDay() / 6 + 1)));
    return date;
  }, startDate);

以下是一些如何使用 addWeekDays 函数的示例:

addWeekDays(new Date("Oct 09, 2020"), 5); // 'Oct 16, 2020'
addWeekDays(new Date("Oct 12, 2020"), 5); // 'Oct 19, 2020'

总结

恭喜你!你已经完成了“向日期添加工作日”实验。你可以在 LabEx 中练习更多实验来提升你的技能。

您可能感兴趣的其他 JavaScript 教程