一定要写多线程程序。开发阶段之一是寻找时间差异(差异可以是年、月或日,具体取决于输入数据。差异是用过去的日期和当前时间计算的)。
我尝试了不同的选项,由于缺乏经验,我无法以任何方式找到解决方案,我不知道该使用什么:LocalDate、Date、Calendar 或其他选项。目前我使用 LocalDate,但路径在我看来不正确(我无法比较年份和月份)。
问题是——我应该使用什么数据类型来存储过去的时刻(年、月、日)以供以后成功比较(最好通过简单的减法 ala 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 在执行减法的代码行下方给出错误
-参数类型 java.time.LocalDate、java.time.LocalDate的运算符未定义。
您建议使用什么来代替 LocalDate 或如何比较 LocalDate(年和月)?
要找出仅以年为单位的差异,您可以使用以下方法
ChronoUnit.YEARS.between(first, last);//返回11Period.between(first, last).getYears();