Должен написать многопоточную программу. Один из этапов разработки - поиск разницы во времени (разница может быть в годах, в месяцах или днях, в зав-ти от входных данных. Разница расчитывается с датой в прошлом и текущим временем).
Пробовал разные варианты, в виду недостатка опыта никак не могу подобрать решение, не знаю что использовать: LocalDate, Date, Calendar или иные варианты. На данный момент использую LocalDate, но путь как мне кажется не верен (не могу сравнить год и месяц).
Вопрос таков - какой тип данных я должен использовать для сохранения момента в прошлом (год, месяц, день) для последующего успешного сравнения (желательно путем обычного вычитания аля resultYear = firstYear - secondYear)?
package myDefaultPackage;
import java.time.*;
public class Timer extends Thread {
public static final LocalDate DATE_OF_SESSION = LocalDate.of(2012, Month.DECEMBER, 12);
public static LocalDate differenceOfTheTime;
public void run() {
LocalDate now;
while (!Thread.currentThread().isInterrupted()) {
try {
sleep(500);
now = LocalDate.now(); // получение текущей даты
}
catch (InterruptedException e) {
}
}
}
/*
* Сравниваем два объекта LocalDate, возвращаем их разницу в виде
* объекта LocalDate*/
LocalDate compare(LocalDate dateOfSession, LocalDate compared) {
LocalDate resultYear = dateOfSession - compared;
}
}
3 снизу cтрочка кода, где производится вычитание, выдает ошибку
The operator -
is undefined for the argument type(s)
java.time.LocalDate, java.time.LocalDate.
Что посоветуете использовать вместо LocalDate или как сравнить LocalDate (год и месяц)?
LocalDate last = LocalDate.of(2017, 6, 2);
LocalDate first = LocalDate.of(2005, 10, 8);
LocalDate resultDate = compare(last, first); //returns 0011-08-25
LocalDate compare(LocalDate dateOfSession, LocalDate compared)
{
long resultDays = ChronoUnit.DAYS.between(compared, dateOfSession);
return LocalDate.of(0, 1, 1).plusDays(resultDays - 1);
}
Чтобы узнать разницу только в годах можно использовать методы
ChronoUnit.YEARS.between(first, last);
//returns 11Period.between(first, last).getYears();
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
По основному все вышло прекрасно с помощью getFilter, а вот как проделать то же с sub items понять не могу
Есть массив строкНужно чтобы каждая строка начиналась с одного из наборов:
Приветствую всех! У меня следующая проблема: есть сервер на Java, использующий для работы ServerSocket , к которому подключаются несколько клиентовВ...