On Tue, Jul 28, 2015 at 10:06 PM, Mark Lawrence <breamore...@yahoo.co.uk> wrote: > On 28/07/2015 06:21, Lennart Regebro wrote: >> >> On Tue, Jul 28, 2015 at 3:22 AM, Mark Lawrence <breamore...@yahoo.co.uk> >> wrote: >>> >>> To me a day is precisely 24 hours, no more, no less. >>> In my mission critical code, which I use to predict my cashflow, I use >>> code such as. >>> >>> timedelta(days=14) >>> >>> Is somebody now going to tell me that this isn't actually two weeks? >> >> >> Yes, I'm telling you that, now. >> >> The two claims "One day is always precisely 24 hours" and "14 days is >> two weeks" are not both true. You have to choose one. > > You can tell me, but as far as I'm concerned in my application both are > true, so I don't have to choose one. (and subsequently) > Tim asked for my definition of two weeks so I've given it. With respect > to that in reality this is true, for me, with my application, making my > statement above correct. For my application we could go from GMT > to BST and back on successive days throughout the year and it > wouldn't make any difference.
When your clocks go from winter time to summer time, there are two possibilities: 1) Your application says "days=14" and actually gets 167 or 169 hours 2) Your application says "days=14" and ends up with the time changing (Or equivalently if you say "days=1" or "hours=24" or whatever.) A naive declaration of "two weeks later" could conceivably mean either. When I schedule my weekly Dungeons & Dragons sessions, they are officially based on UTC [1], which means that one session starts 168 hours after the previous one. Currently, they happen when my local clock reads noon; in summer, my local clock will read 1PM. Was it still "a week later" when it was noon once and 1PM the next time? Conversely, my (also weekly) Thinkful open sessions are scheduled every week at 8AM US Eastern time (America/New_York). For anyone on the Atlantic coast of the US, they will occur every Wednesday and the clock will read 08:00 every time. Sometimes, one will happen 167 hours after the previous one, or 169 hours afterwards. Is that "a week later"? Your application has to make a choice between these two interpretations. This is a fundamental choice that MUST be made. Trying to pretend that your application doesn't care is like trying to say that Code Page 437 is good enough for all your work, and you can safely assume that one byte is one character is one byte. ChrisA [1] Leap seconds aren't significant, as people are often several minutes early or late, so UTC/UT1/GMT/TIA are all effectively equivalent. _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com