How To Get List Of Dates From Some Date?
Solution 1:
You can use this sample code to get 30 dates, starting from a specific date.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
publicclassDays {
publicstaticvoidmain(String[] args) {
StringstartDate="29/04/2018";
inthowManyDays=30;
DateTimeFormatterformatter= DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDatelocalDate= LocalDate.parse(startDate, formatter);
List<LocalDate> dates = newArrayList<>();
for (inti=0; i < howManyDays; i++) {
dates.add(localDate.plusDays(i));
}
//For check
dates.forEach(System.out::println);
}
}
Run with howManyDays=5
gives:
2018-04-292018-04-302018-05-012018-05-022018-05-03
Solution 2:
publicstatic List<LocalDate> getLocalDates(String startdate, int days) {
List<LocalDate> localDates = newArrayList<>();
DateTimeFormatterformatter= DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDatelocalDate= LocalDate.parse(startdate, formatter);
for (inti=1; i <= days; i++) {
localDates.add(localDate.plusDays(i));
}
return localDates;
}
plusDays should do the trick
Solution 3:
The other answers are fine. And it will probably take a while still until Java 9 is running on your Android phone, but for anyone else reading along I should like to provide the Java 9 (and later) code snippet:
LocalDate startDate = LocalDate.of(2018, Month.APRIL, 29);
int howManyDays = 30;
List<LocalDate> dates = startDate.datesUntil(startDate.plusDays(howManyDays))
.collect(Collectors.toList());
System.out.println(dates);
Output is:
[2018-04-29, 2018-04-30, 2018-05-01, 2018-05-02, 2018-05-03, 2018-05-04, 2018-05-05, 2018-05-06, 2018-05-07, 2018-05-08, 2018-05-09, 2018-05-10, 2018-05-11, 2018-05-12, 2018-05-13, 2018-05-14, 2018-05-15, 2018-05-16, 2018-05-17, 2018-05-18, 2018-05-19, 2018-05-20, 2018-05-21, 2018-05-22, 2018-05-23, 2018-05-24, 2018-05-25, 2018-05-26, 2018-05-27, 2018-05-28]
As I already said in a comment, prefer java.time
over Joda-Time (that the snippet you had found for your question was using). java.time
is the modern Java date and time API. The Joda-Time home page says:
Note that Joda-Time is considered to be a largely “finished” project. No major enhancements are planned. If using Java SE 8, please migrate to
java.time
(JSR-310).
If you did want to use the snippet from your question, all you would have to do was delete the first line and change days
to howManyDays
in the second and third lines.
Links
- Oracle tutorial: Date Time explaining how to use
java.time
. - Joda-Time home page
Post a Comment for "How To Get List Of Dates From Some Date?"