On Wed, Apr 20, 2011 at 11:12:11AM +0200, Michael J Gruber wrote: > Implement this differently with months of size > > onemonth = 365/12 > > so that > > totalmonths = (long)( (days + onemonth/2)/onemonth ) > years = totalmonths / 12 > months = totalmonths % 12 > > In order to do this without floats, we write the first formula as > > totalmonths = (days*12*2 + 365) / (365*2) Well now I feel like an idiot. Algebra to the rescue. The extra multiplications introduce the possibility of overflow, but since the number of days was arrived at by dividing an unsigned long number of seconds by 86400, we are guaranteed to have room to multiply by 24. :) So looks good to me. -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html