Given the vagaries of date math (e.g., does this particular February have 28 days, or does this one have 29?), you might have better luck inverting the search. First build a list of ($year, $month, $day) triples that represent the dates within your search range, and then look to see if there's a corresponding file.
I am no expert but like the idea of tinkering with perl. What you can do is create a hash with the keys are all the dates between your start date and the end date. Traverse your directory and set the value of that key to 1.
Now you have a hash with entries that indicate both existing and non-existing files for later processing.