I would have the form query a separate custom list.
The list has one row for every day a car is booked. So the list has columns for car, date, person who booked, and parent booking form ID.
When the user opens the InfoPath form to book a car from a date to another date, it automatically inserts number of rows in the form for the difference in dates and then the form uses CAML to insert those rows into the list with the parent ID. The form submits itself with a unique ID to the form library.
After the form loads you use a rule-action to query list with a filter for start and end date. This can be done using REST (2010+) or using FilterOwssvr.
Our qRules common library will make integration much less work since it's easy to create a mapping and call the SubmitToSharePointList command then to filter as well using the FilterOwssvr command. Should be 1-2 hours of work to accomplish with qRules.
Without qRules, you can do this by adding default values (rows) to your form that are blank and then setting them equal to the day when they schedule. To iterate, you set a column which will trigger a rule for each row and then the row rule-action increments a counter and you check that counter when you are adding to make sure you don't add too many.
In either case, should be <4 hours of work.