refactor EvaluateMonth and EvaluateDate methods

the number of days generation is shared in both.