en_guide_working-days.md.CHel1daI.js 15 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import{_ as i,c as a,ag as n,o as t}from"./chunks/framework.DlrvhVKI.js";const y=JSON.parse('{"title":"Working Days","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/working-days.md","filePath":"en/guide/working-days.md"}'),e={name:"en/guide/working-days.md"};function k(l,s,h,p,d,r){return t(),a("div",null,s[0]||(s[0]=[n(`<h1 id="working-days" tabindex="-1">Working Days <a class="header-anchor" href="#working-days" aria-label="Permalink to &quot;Working Days&quot;">​</a></h1><h2 id="isworkday-check-if-a-given-date-is-a-workday" tabindex="-1"><code>isWorkday</code> Check if a given date is a workday <a class="header-anchor" href="#isworkday-check-if-a-given-date-is-a-workday" aria-label="Permalink to &quot;\`isWorkday\` Check if a given date is a workday&quot;">​</a></h2><div class="language-js vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isWorkday</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;2023-01-01&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)); </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// false</span></span></code></pre></div><h2 id="getworkdaysinrange-get-a-list-of-workdays-within-a-specified-date-range" tabindex="-1"><code>getWorkdaysInRange</code> Get a list of workdays within a specified date range <a class="header-anchor" href="#getworkdaysinrange-get-a-list-of-workdays-within-a-specified-date-range" aria-label="Permalink to &quot;\`getWorkdaysInRange\` Get a list of workdays within a specified date range&quot;">​</a></h2><p>This function takes a start date, an end date, and an optional parameter to decide whether to include weekends. If weekends are included, the function returns all days within the range. Otherwise, it returns only weekdays (Monday to Friday).</p><div class="language-js vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Example usage</span></span>
  2. <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> start</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;2024-04-26&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
  3. <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> end</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;2024-05-06&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
  4. <span class="line"></span>
  5. <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Get all workdays from 2024-04-26 to 2024-05-06, including weekends</span></span>
  6. <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> workdaysIncludingWeekends</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> getWorkdaysInRange</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(start, end, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
  7. <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;Workdays including weekends:&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, workdaysIncludingWeekends);</span></span>
  8. <span class="line"></span>
  9. <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Get workdays from 2024-04-26 to 2024-05-06, excluding weekends</span></span>
  10. <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> workdaysExcludingWeekends</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> getWorkdaysInRange</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(start, end, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">false</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
  11. <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;Workdays excluding weekends:&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, workdaysExcludingWeekends);</span></span></code></pre></div><h2 id="findworkday-find-a-workday" tabindex="-1"><code>findWorkday</code> Find a workday <a class="header-anchor" href="#findworkday-find-a-workday" aria-label="Permalink to &quot;\`findWorkday\` Find a workday&quot;">​</a></h2><p>Find the <code>{deltaDays}</code>-th workday starting from today.</p><div class="language-js vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Find the {deltaDays}-th workday from today</span></span>
  12. <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// If deltaDays is 0, first check if today is a workday. If yes, return today&#39;s date.</span></span>
  13. <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// If today is not a workday, find the next workday.</span></span>
  14. <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> currentWorkday</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> findWorkday</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
  15. <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(currentWorkday);</span></span>
  16. <span class="line"></span>
  17. <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Find the next workday</span></span>
  18. <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> nextWorkday</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> findWorkday</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
  19. <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(nextWorkday);</span></span>
  20. <span class="line"></span>
  21. <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Find the previous workday</span></span>
  22. <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> previousWorkday</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> findWorkday</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
  23. <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(previousWorkday);</span></span>
  24. <span class="line"></span>
  25. <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Specify a starting date to find workdays relative to it</span></span>
  26. <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Find the second workday from 2024-05-18</span></span>
  27. <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> secondNextWorkday</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> findWorkday</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;2024-05-18&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
  28. <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(secondNextWorkday);</span></span></code></pre></div><h2 id="getdaydetail-get-detailed-date-information" tabindex="-1"><code>getDayDetail</code> Get detailed date information <a class="header-anchor" href="#getdaydetail-get-detailed-date-information" aria-label="Permalink to &quot;\`getDayDetail\` Get detailed date information&quot;">​</a></h2><p>This function checks if a specified date is a workday and returns a boolean indicating whether it is a workday, along with details about the date.</p><ol><li>If the specified date is a workday, it returns <code>true</code> and the name of the weekday. If it is a rescheduled workday (due to holiday adjustments), it returns <code>true</code> and details about the holiday.</li><li>If it is a holiday, it returns <code>false</code> and holiday details.</li></ol><div class="language-js vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Example usage</span></span>
  29. <span class="line"></span>
  30. <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// A regular workday (Friday)</span></span>
  31. <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getDayDetail</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;2024-02-02&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)); </span></span>
  32. <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// { &quot;date&quot;: &quot;2024-02-02&quot;, &quot;work&quot;: true, &quot;name&quot;: &quot;Friday&quot; }</span></span>
  33. <span class="line"></span>
  34. <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// A holiday (weekend)</span></span>
  35. <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getDayDetail</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;2024-02-03&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)); </span></span>
  36. <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// { &quot;date&quot;: &quot;2024-02-03&quot;, &quot;work&quot;: false, &quot;name&quot;: &quot;Saturday&quot; }</span></span>
  37. <span class="line"></span>
  38. <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// A rescheduled workday</span></span>
  39. <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getDayDetail</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;2024-02-04&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)); </span></span>
  40. <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// { &quot;date&quot;: &quot;2024-02-04&quot;, &quot;work&quot;: true, &quot;name&quot;: &quot;Spring Festival, 春节, 3&quot; }</span></span>
  41. <span class="line"></span>
  42. <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// A Spring Festival holiday</span></span>
  43. <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getDayDetail</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;2024-02-17&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)); </span></span>
  44. <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// { &quot;date&quot;: &quot;2024-02-17&quot;, &quot;work&quot;: false, &quot;name&quot;: &quot;Spring Festival, 春节, 3&quot; }</span></span></code></pre></div>`,13)]))}const g=i(e,[["render",k]]);export{y as __pageData,g as default};