w3resource

JavaScript: Get ISO-8601 week number of year, weeks starting on Monday

JavaScript Datetime: Exercise-24 with Solution

Write a JavaScript function to get ISO-8601 week number of year, weeks starting on Monday.

Example : 42 (the 42nd week in the year)
Test Data :
dt = new Date(2015, 10, 1);
console.log(ISO8601_week_no(dt));
44

Sample Solution:-

HTML Code:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JavaScript function to get ISO-8601 week number of year, weeks starting on Monday</title>
</head>
<body>

</body>
</html>

JavaScript Code:

function ISO8601_week_no(dt) 
  {
     var tdt = new Date(dt.valueOf());
     var dayn = (dt.getDay() + 6) % 7;
     tdt.setDate(tdt.getDate() - dayn + 3);
     var firstThursday = tdt.valueOf();
     tdt.setMonth(0, 1);
     if (tdt.getDay() !== 4) 
       {
      tdt.setMonth(0, 1 + ((4 - tdt.getDay()) + 7) % 7);
        }
     return 1 + Math.ceil((firstThursday - tdt) / 604800000);
        }

dt = new Date();
console.log(ISO8601_week_no(dt));

dt = new Date(2015, 10, 1);
console.log(ISO8601_week_no(dt));

Sample Output:

25
44

Flowchart:

Flowchart: JavaScript- Get ISO-8601 week number of year, weeks starting on Monday

Live Demo:

See the Pen JavaScript - Get ISO-8601 week number of year, weeks starting on Monday-date-ex-24 by w3resource (@w3resource) on CodePen.


Improve this sample solution and post your code through Disqus

Previous: Write a JavaScript function to get English ordinal suffix for the day of the month, 2 characters (st, nd, rd or th.).
Next: Write a JavaScript function to get a full textual representation of a month, such as January or June.

What is the difficulty level of this exercise?



JavaScript: Tips of the Day

Convert tabs to spaces, where each tab corresponds to count spaces

Example:

const tips_expandTabs = (str, count) => str.replace(/\t/g, ' '.repeat(count));
console.log(tips_expandTabs('\t\tw3resource', 4)); 

Output:

"        w3resource"