Tim Peters wrote:
[Brett]
And why does ``t = (time((time_t *)0) / YEAR) * YEAR;`` on line 608 have to divide by YEAR and then multiply by YEAR? Shouldn't those cancel out?
[Guido]
I guess it should have used // instead of /. (X//Y)*Y is a standard way to round X down to a whole multiple of Y, and I presume that's what the code here does.
[Brett]
Didn't know C had a flooring divide operator. Good to know.
It doesn't. If Guido were still my boss, I'd say he was pulling your leg. But since he left us, I'll just diplomatically say he's an idiot <wink>.
=) But he is still your BDFL so be careful how to tread, Tim. =)
If dividend and divisor are both positive and integer, C's / is flooring division.
That's what I figured. Although isn't that assuming time_t is an int or long or something? But the entire chunk of code seems to assuming that so what is one more spot of code. =) -brett