refactored date range computation

added unit tests for february (leap year), march (dst+1), october (dst-1) and years (leap years)