Итак, я хочу создать обратный отсчет для введенной пользователем даты в классе обслуживания. Прямо сейчас у меня проблемы с обратным отсчетом. Кажется, неважно, что он вычитает только 1 секунду, а не go далее. это код:
лог c для обратного отсчета
package com.example.service;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class CounterService {
LocalDateTime dateTime;
public LocalDateTime getDateTime(){
return dateTime;
}
public void setDateTime(LocalDateTime dateTime) {
this.dateTime = dateTime;
}
public LocalDateTime parseDate(String eventDate) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
dateTime = LocalDateTime.parse(eventDate, formatter);
return dateTime;
}
public static void main(String[] args) {
CounterService cs = new CounterService();
LocalDateTime a = LocalDateTime.of(2021,11,11,21,43,44);
cs.setDateTime(a);
Runnable r = new Counter(cs);
new Thread(r).start();
}
}
и Runnable
package com.example.service;
import java.time.LocalDateTime;
public class Counter implements Runnable {
CounterService counter;
public Counter(CounterService cs) {
this.counter = cs;
}
public void setCounter(CounterService cs) {
this.counter = cs;
}
public void run() {
LocalDateTime countFromThisDate = counter.getDateTime();
try {
boolean x = true;
while (x) {
LocalDateTime substracting = countFromThisDate.minusSeconds(1);
Thread.sleep(1000);
System.out.println(substracting);
}
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
}
также, как я смогу добавить этот счетчик ( после того, как он работает), чтобы он обновлялся динамически и вычитал каждую секунду один за другим?