我遇到了在List
中添加日期的情况。现在,我想选择前2个位置作为开始日期和结束日期,然后选择下2个位置作为开始日期和结束日期,依此类推。在获得开始日期和结束日期之后,我需要找到两天之间的天数并计算天数。
这是列表对象中的日期。
[2018-09-05, 2018-09-14, 2018-09-29, 2018-10-14, 2018-10-29]
2018-09-05
作为开始日期,2018-09-13
作为结束日期-查找这些日期之间的天数。2018-09-14
作为开始日期,2018-09-28
作为结束日期-查找这些日期之间的天数。2018-09-29
作为开始日期,2018-10-13
作为结束日期-查找这些日期之间的天数。2018-10-14
作为开始日期,2018-10-28
作为结束日期-查找这些日期之间的天数。请帮助我找到它。 预先感谢。
答案 0 :(得分:2)
如果列表包含偶数个有效日期字符串,则以下代码将起作用。
将迭代列表,提取每对日期并计算天数差异:
public static long getDaysDif(LocalDate fromDate, LocalDate toDate) {
return ChronoUnit.DAYS.between(fromDate, toDate);
}
public static LocalDate getLocalDateFromString(String d, String format) {
return LocalDate.parse(d, DateTimeFormatter.ofPattern(format));
}
public static void main(String[] args) {
List<String> list = new ArrayList<>
(Arrays.asList
("2018-09-05", "2018-09-13", "2018-09-14", "2018-09-28", "2018-09-29", "2018-10-13"));
for (int i = 0; i < list.size(); i+=2) {
String strStart = list.get(i);
String strEnd = list.get(i + 1);
LocalDate dateStart = getLocalDateFromString(strStart, "yyyy-MM-dd");
LocalDate dateEnd = getLocalDateFromString(strEnd, "yyyy-MM-dd");
long dif = getDaysDif(dateStart, dateEnd);
System.out.println(dif);
}
}
将打印:
8
14
14
答案 1 :(得分:0)
我不完全了解您选择日期的问题的第一部分,但是要查找日期之间的天数,您可以执行以下操作:
import java.time.LocalDate;
import java.time.Period;
public class Application {
public static void main(String[] args) {
LocalDate startDate= LocalDate.now();
LocalDate endDate= today.plusDays(6);
Period period = Period.between(startDate, endDate);
int difference = period.getDays();
}
}