скажет, что у меня есть пользователь, у этого пользователя много поездок и принадлежит городу. Каждая поездка относится к городу и имеет начало и дату окончания.
Давайте скажем, что пользователь X отправляется в новый Йорк между 2010-09-01 и 2010-09-20, теперь я хочу знать, кто еще находится в Нью-Йорке, и как долго их поездки перекрываются с пользователем x. И тогда есть люди, уже живущие в Нью-Йорке, поэтому теперь я также хочу знать, сколько людей, которые живут в Нью-Йорке, в настоящее время существуют в течение любых дней, когда пользователь x есть и сколько дней они перекрываются. Это оказалось довольно сложной задачей, и я не могу понять последний шаг.
Некоторая помощь будет действительно оценена.
изменить форматирование
Предполагая, что у вас есть две модели типа user
, каждая с start_date
и end_date
. Предполагая, что две даты перекрываются, вы можете рассчитать количество дней, перекрывающихся с:
(user1.end_date - user2.start_date).to_i