Stefan :
I want to know how can i check if given measurements are older than x days using the date.before()
function. I've tried passing it an int as given in the exercise but It needs to be given a date so I don't know how to pass it. Code:
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))
}
}
Lucas S. :
You could compute the Date from now minus "x" days and use that with before()
method.
Example:
Instant now = Instant.now();
Instant now_minus_x_days = now.minus(x, ChronoUnit.DAYS);
someDate.before(Date.from(now_minus_x_days));
In your class it should be something like:
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)))) {
}
}
}
}