Передайте int в .before (), чтобы вычислить, старше ли он x дней - PullRequest
0 голосов
/ 05 февраля 2019

Я хочу знать, как я могу проверить, если данные измерения старше, чем x дней, используя функцию date.before().Я попытался передать ему int, как указано в упражнении, но ему нужно указать дату, поэтому я не знаю, как его передать.Код:

class WeatherStation {
    List<Measurements> measurements;
    int days;

    public WeatherStation(int days) {
        this.days = days;
        this.measurements = new ArrayList<>();
    }

    public void addMeasurements(float temperature, float wind, float humidity, float visibility, Date date) {
        measurements.add(new Measurements(temperature, wind, humidity, visibility, date));
        for(Measurements m: measurements) {
            if(m.date.before(days))
        }

    }

1 Ответ

0 голосов
/ 05 февраля 2019

Вы можете вычислить дату из сейчас минус "x" дней и использовать ее с методом before().

Пример:

Instant now = Instant.now();
Instant now_minus_x_days = now.minus(x, ChronoUnit.DAYS);
someDate.before(Date.from(now_minus_x_days));

В вашем классеэто должно быть что-то вроде:

class WeatherStation {
    List<Measurements> measurements;
    int days;

    public WeatherStation(int days) {
        this.days = days;
        this.measurements = new ArrayList<>();
    }

    public void addMeasurements(float temperature, float wind, float humidity, float visibility, Date date) {
        measurements.add(new Measurements(temperature, wind, humidity, visibility, date));
        for(Measurements m: measurements) {
            if(m.date.before(Date.from(Instant.now().minus(days, ChronoUnit.DAYS)))) {

            }
        }

    }
}
...