Add Weeks to a Date using JavaScript

One common task when working with dates in JavaScript is adding a certain number of weeks to a given date. In this post, we’ll explore a couple of ways to do this in a quick and efficient manner.

Method 1: Reusable Function

One way to add weeks to a date is to create a reusable function that takes the number of weeks and a Date object as arguments. If no Date object is provided, the function uses the current date by default. Here’s an example of how this function might look:

function addWeeks(numOfWeeks, date = new Date()) {
  date.setDate(date.getDate() + numOfWeeks * 7);
  return date;
}

To use this function, simply call it with the number of weeks you want to add and an optional date object. For example:

// Add 2 weeks to current date
console.log(addWeeks(2));

// Add 2 weeks to specified date
console.log(addWeeks(2, new Date('2022-02-14')));

The getDate() method returns the day of the month for the given date as an integer between 1 and 31. The setDate() method sets the day of the month for the date, taking a number as a parameter. By adding the number of weeks multiplied by 7 (the number of days in a week), we can easily add the desired number of weeks to the date.

[Fixed]: Property does not exist on type ‘never’ in TypeScript

One thing to note is that the setDate() method mutates the original Date object. If you don’t want to change the original date, you can create a copy of it before calling the setDate() method. Here’s an example of how to do this:

function addWeeks(numOfWeeks, date = new Date()) {
  const dateCopy = new Date(date.getTime());
  dateCopy.setDate(dateCopy.getDate() + numOfWeeks * 7);
  return dateCopy;
}

const originalDate = new Date('2022-02-13');
const updatedDate = addWeeks(2, originalDate);
console.log(updatedDate); // Sun Feb 27 2022
console.log(originalDate); // Sun Feb 13 2022 (original date remains unchanged)

Method 2: Using Date Arithmetic

Another way to add weeks to a date is to simply perform arithmetic on the date using the Date object’s built-in methods. For example:

const date = new Date('2022-02-01');
console.log(date); // Tue Feb 01 2022

date.setDate(date.getDate() + 4 * 7);
console.log(date); // Tue Mar 01 2022

In this example, we start with the date ‘2022-02-01‘ and add 4 weeks (28 days) to it using the setDate() method. The Date object automatically takes care of rolling over to the next month (or year) if necessary.

Conclusion on Add Weeks to a Date using JavaScript

In this post, we looked at two ways to add weeks to a date in JavaScript: by creating a reusable function and by using basic arithmetic with the Date object’s built-in methods. Whether you choose one method or the other will depend on your specific use case and preferences

Leave a Reply