我正在使用Scene Builder创建Java Fx应用程序。我有两个日期选择器Date1和Date Two。我需要计算Date1和Date2之间的天数,不包括任何星期天。我已经搜索了各种答案,但没有人满足。
任何帮助都非常感激。
答案 0 :(得分:1)
以下情况应该有效。
long date1 = datePicker1.getvalue().toEpochDay();
long date2 = datePicker2.getvalue().toEpochDay();
int days = (int) Math.abs(date1 - date2);
示例:
long date1 = 16322; // 09/09/2014
long date2 = 16329; // 09/16/2014
int days = (int) Math.abs(date1 - date2);
System.out.println(days); // 7 Days
注意:我认为jfx2.0没有内置的DatePicker,所以我假设你使用的是jdk8。
另外,我从这个问题中提取了datePicker.getvalue().toEpochDay()
逻辑:
Stack Overflow: Get value from Date picker;处理jfx8。
LocalDate
。toEpochDay()
中的纪元是自1970年1月1日以来的天数。
要从下面的评论中回答您的问题,您可以执行以下操作。
int days = daysBetween(
datePicker1.getvalue(),
datePicker2.getvalue(),
Arrays.asList(DayOfWeek.SUNDAY)
);
public static int daysBetween(LocalDate start, LocalDate end, List<DayOfWeek> ignore) {
int count = 0;
LocalDate curr = start.plusDays(0); // Create copy.
while (curr.isBefore(end)) {
if (!ignore.contains(curr.getDayOfWeek()))
count++;
curr = curr.plusDays(1); // Increment by a day.
}
return count;
}