On Jan 8, 6:23 am, Scott David Daniels <scott.dani...@acm.org> wrote: > Ross wrote: > > There seems to be no shortage of information around on how to use the > > time module, for example to use time.ctime() and push it into strftime > > and get something nice out the other side, but I haven't found anything > > helpful in going the other way. > > As to a paucity of conversion formatting, there is no magic way to take > everyone's way of putting date and time information in text and convert > it to unambiguous format, in part because there are too many different > and contradictory formats. When I write dates, I know what I intended; > when I read dates, I guess what the author intended. > > Have you read the entire time module document? If so, which functions > in that module take strings as arguments? > > > That is, given some formatted text describing times - is there something > > that makes it easy to calculate time differences, or do I have to index > > my way through the string pulling out characters, converting to integers > > etc... > > > Data is formatted: > > t1 = 09:12:10 > > t2 = 11:22:14 > > I want to calculate tdiff = t2-t1 > > Do you do any work yourself? Show us your attempts. This looks like > a trivial exercise. It seems that for less than four times the effort > of asking your question you might have found the answer. > > Perhaps I am being too cranky this morning.
Indeed. Be not cranky at clueless bludgers and cargo-cultists lest they rise high in the serried ranks of IT management and remember your name inclusive-or the net-nannies sally forth and wallop thee with a balloon on a stick. To the OP: Your Lordship did not specify whether output should be expressed in hours and a fraction, or in hours, minutes, and seconds. So that the eminent one may avoid having to make a decision in public, I humbly submit answers to both possibilities: >>> t1 = "09:12:10" >>> t2 = "11:22:14" >>> sum((a - b) / c for (a, b, c) in zip(map(int, t2.split(":")), >>> map(int,t1.split(":")), (1., 60., 3600.))) 2.1677777777777778 >>> def tdiff(t1, t2): ... h, m, s = [a - b for (a, b) in zip(map(int, t2.split(":")), map (int,t1.split(":")))] ... if s < 0: ... s += 60 ... m -= 1 ... if m < 0: ... m += 60 ... h -= 1 ... return h, m, s ... >>> tdiff(t1, t2) (2, 10, 4) >>> tdiff('09:12:10', '10:11:09') (0, 58, 59) HTH, John -- http://mail.python.org/mailman/listinfo/python-list