В java есть класс java.time.Period для хранения информации и временных промежуток. Он имеет следующий конструктор Period.between(LocalDate start, LocalDate end). В данной ситуации нужно только правильно определить дату начала и конца из четырех аспектов дат. Напишем метод, который это делает:
private static Period getPeriod(LocalDate s1, LocalDate f1,
LocalDate s2, LocalDate f2) {
//наиболее поздняя дата в качестве начала общего промежутка
LocalDate start = s1.isAfter(s2) ? s1 : s2;
//наиболее ранняя дата в качестве конечной даты
LocalDate end = f1.isBefore(f2) ? f1 : f2;
//ситуация когда пересечения у двух промежутков нет
if ((start == s1 && end == f1) || (start == s2 && end == f2))
return Period.ZERO;
else
return Period.between(start, end);
}
Использовать его можно следующим образом:
LocalDate s1 = LocalDate.of(2016, 12, 1);
LocalDate f1 = LocalDate.of(2016, 12, 5);
LocalDate s2 = LocalDate.of(2016, 12, 3);
LocalDate f2 = LocalDate.of(2016, 12, 10);
System.out.println(getPeriod(s1, f1, s2, f2).getDays());
Вывод:
2Вы можете использовать драйверы с открытым исходным кодом нувориша. Альтернативно (лучшее решение, на мой взгляд), вы можете использовать шмелю и работать в режиме BIOS «nvidia optimus». Это запустит основной X-сервер на вашей плате Intel и позволит вам запускать специальные графические приложения на карте nvidia с помощью команды optirun. С установленной или без шмеля есть программа screenclone, которая позволит вам использовать вывод DisplayPort / DVI с карты Intel, скопировав данные с карты intel на карту nvidia.
Дополнительная информация о графическую установку можно найти здесь: bumblebee (W520 похож на T520, за исключением выхода VGA)
Инструкции для screenclone можно найти здесь: http: // zachstechnotes. blogspot.com/2012/04/post-title.html
Приводы nouveau перечисляют вашу карту в соответствии с их вики под кодовым именем NVC0 http://nouveau.freedesktop.org/wiki/CodeNames
перечислите вашу карту как поддерживаемую . Сообщите нам, если для вас работают nouveu.
Последний драйвер - 302.07
Добавлена поддержка драйверов X для RandR 1.2 и RandR 1.3. Подробнее см. «Поддержка изменения размера и поворота X» в README.