Improved accuracy

I realized that assuming there are 31 days in a month is rediculous.
Going by average seconds in a time period now. Also added a new error to
throw when the self.seconds value overflows.