make date calculation more pythonic. I know the performance is not ideal but generator inside generator seems awesoem
assert start date is alwasy before or equal to the end date