Skip to content

Instantly share code, notes, and snippets.

@dunice
Created January 23, 2018 12:50
Show Gist options
  • Save dunice/a3a8a431140ec004fdc6969f77356fdf to your computer and use it in GitHub Desktop.
Save dunice/a3a8a431140ec004fdc6969f77356fdf to your computer and use it in GitHub Desktop.
// calculation result
float cruise_time = 39.123;
DateTimeFormatter formatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
OffsetDateTime departure_at = OffsetDateTime.parse(params.departure_at, formatter);
OffsetDateTime arrive_at = OffsetDateTime.from(departure_at).plusMinutes((long)cruise_time);
boolean is_available = true;
for(int i = 0; i < doc['unavailability'].length; i++) {
if(doc['unavailability'][i].starts_at !== null) {
OffsetDateTime starts_at = OffsetDateTime.parse(doc['unavailability'][i].starts_at, formatter);
OffsetDateTime ends_at = OffsetDateTime.parse(doc['unavailability'][i].ends_at, formatter);
if(
(starts_at.isAfter(departure_at) && starts_at.isBefore(arrive_at))
|| (ends_at.isAfter(departure_at) && ends_at.isBefore(arrive_at))
|| (starts_at.isAfter(departure_at) && ends_at.isBefore(arrive_at))
|| (starts_at.isBefore(departure_at) && ends_at.isAfter(arrive_at))
) {
is_available = false;
}
}
}
return is_available;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment