Java – Add days to date

In this article, we will take a look at 2 different ways to add/subtract days, months or years from current date as well as any given date in java with examples.
[the_ad id=”651″] 1. LocalDate – Add days to current date
Java 8 LocalDate has a now() method which returns an object having current date.
To add days to this date, it has plusDays() method which accepts a long value representing the number of days to be added to this date. Example,

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// get current date
LocalDate currentDate = LocalDate.now();
// add 30 days
LocalDate plusDays = currentDate.plusDays(30);
System.out.println("Current Date: " + currentDate);
System.out.println("Date after 30 days: " + plusDays);
// get current date LocalDate currentDate = LocalDate.now(); // add 30 days LocalDate plusDays = currentDate.plusDays(30); System.out.println("Current Date: " + currentDate); System.out.println("Date after 30 days: " + plusDays);
// get current date
LocalDate currentDate = LocalDate.now();
// add 30 days
LocalDate plusDays = currentDate.plusDays(30);
System.out.println("Current Date: " + currentDate);
System.out.println("Date after 30 days: " + plusDays);

Output is

Current Date: 2022-07-04
Date after 30 days: 2022-08-03

LocalDate also provides methods to add months, weeks and years with plusMonths(), plusWeeks() and plusYears() methods respectively.
It also has corresponding methods to subtract these values from a date.

Remember that LocalDate is an immutable class. This means that all these methods return a new object rather than modifying the original object.
2. LocalDate – Add days to another date
Create a date using LocalDate.of() method.
of() takes year, month and date as arguments and returns a date with these values.

Use plusDays(), plusMonths(), plusWeeks() and plusYears() methods to add values to this date as shown above. Example,

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
LocalDate currentDate = LocalDate.of(2022, 1,1);
LocalDate plusDays = currentDate.plusMonths(2);
System.out.println("Current Date: " + currentDate);
System.out.println("Date after 2 months: " + plusDays);
LocalDate currentDate = LocalDate.of(2022, 1,1); LocalDate plusDays = currentDate.plusMonths(2); System.out.println("Current Date: " + currentDate); System.out.println("Date after 2 months: " + plusDays);
LocalDate currentDate = LocalDate.of(2022, 1,1);
LocalDate plusDays = currentDate.plusMonths(2);
System.out.println("Current Date: " + currentDate);
System.out.println("Date after 2 months: " + plusDays);

Output is

Current Date: 2022-01-01
Date after 2 months: 2022-03-01

[the_ad id=”656″] 3. Calendar – Add days to current date
java.util.Calendar object provides a generic add() method which accepts 2 arguments:
A. Date component that needs to be added or subtracted.
B. Number that will be added/subtracted.

To create a calendar object, use its static getInstance() method and to get the date encapsulated by this object, use its getTime() method.
Below code adds 7 days to current date.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// create calendar object
Calendar calendar = Calendar.getInstance();
System.out.println("Current date: " + calendar.getTime());
// add 7 days
calendar.add(Calendar.DATE, 7);
System.out.println("Date after 7 days: " + calendar.getTime());
// create calendar object Calendar calendar = Calendar.getInstance(); System.out.println("Current date: " + calendar.getTime()); // add 7 days calendar.add(Calendar.DATE, 7); System.out.println("Date after 7 days: " + calendar.getTime());
// create calendar object
Calendar calendar = Calendar.getInstance();
System.out.println("Current date: " + calendar.getTime());
// add 7 days
calendar.add(Calendar.DATE, 7);
System.out.println("Date after 7 days: " + calendar.getTime());

Output is

Current date: Mon Jul 04 23:08:08 IST 2022
Date after 7 days: Mon Jul 11 23:08:08 IST 2022

To subtract a value from current date, provide a negative value to the second argument to add().
Note that getTime() internally creates a Date object using its constructor.
4. Calendar – Add days to other date
To create a date other than current date, java.util.Calendar object provides a set() method.
Using set(), we can set the value of a date component(such as day, month or year) to some other value.
Once the calendar is updated to a desired date, we can add days to it using add() method. Example,

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Calendar calendar = Calendar.getInstance();
// set calendar to other date
calendar.set(Calendar.DATE, 31);
calendar.set(Calendar.MONTH, 11);
calendar.set(Calendar.YEAR, 2022);
System.out.println("Current date: " + calendar.getTime());
// add 1 day
calendar.add(Calendar.DATE, 1);
System.out.println("Date after 1 day: " + calendar.getTime());
Calendar calendar = Calendar.getInstance(); // set calendar to other date calendar.set(Calendar.DATE, 31); calendar.set(Calendar.MONTH, 11); calendar.set(Calendar.YEAR, 2022); System.out.println("Current date: " + calendar.getTime()); // add 1 day calendar.add(Calendar.DATE, 1); System.out.println("Date after 1 day: " + calendar.getTime());
Calendar calendar = Calendar.getInstance();
// set calendar to other date
calendar.set(Calendar.DATE, 31);
calendar.set(Calendar.MONTH, 11);
calendar.set(Calendar.YEAR, 2022);
System.out.println("Current date: " + calendar.getTime());
// add 1 day
calendar.add(Calendar.DATE, 1);
System.out.println("Date after 1 day: " + calendar.getTime());

Output is

Current date: Sat Dec 31 23:18:47 IST 2022
Date after 1 day: Sun Jan 01 23:18:47 IST 2023

Note that calendar counts the months starting from 0. So, a month set to 11 means December.
A value greater than 12 will set the month accordingly without raising any error.
[the_ad id=”644″] Hope the article was useful.