How to get hours and minutes from 'datetime.timedelta' object?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Lad

    How to get hours and minutes from 'datetime.timedelta' object?

    Hello,
    what is the best /easest way how to get number of hours and minutes
    from a timedelta object?
    Let's say we have
    aa=datetime.dat etime(2006, 7, 29, 16, 13, 56, 609000)
    bb=datetime.dat etime(2006, 8, 3, 17, 59, 36, 46000)
    so
    c=bb-aa
    will be
    datetime.timede lta(5, 6339, 437000)

    I can easily get days ( c.days)
    but
    I still can not figure out how easily to get hours and minutes
    Any idea?
    Thank you for help
    L.

  • John Machin

    #2
    Re: How to get hours and minutes from 'datetime.timed elta' object?

    Lad wrote:
    Hello,
    what is the best /easest way how to get number of hours and minutes
    from a timedelta object?
    Let's say we have
    aa=datetime.dat etime(2006, 7, 29, 16, 13, 56, 609000)
    bb=datetime.dat etime(2006, 8, 3, 17, 59, 36, 46000)
    so
    c=bb-aa
    will be
    datetime.timede lta(5, 6339, 437000)
    >
    I can easily get days ( c.days)
    but
    I still can not figure out how easily to get hours and minutes
    Any idea?

    WTF^H^H^H ... You got an answer to this question 5 days ago .....
    [thread copied below]
    8<-------------------------------
    Lad wrote:
    Sybren Stuvel wrote:
    Lad enlightened us with:
    How can I find days and minutes difference between two datetime
    objects?
    For example If I have
    b=datetime.date time(2006, 8, 2, 8, 57, 28, 687000)
    a=datetime.date time(2006, 8, 1, 18, 19, 45, 765000)
    diff = b - a
    Ok, I tried
    >diff=b-a
    >diff
    datetime.timede lta(0, 52662, 922000)
    >diff.min
    datetime.timede lta(-999999999)
    Reread the manual:

    1. "min" is minIMUM, not minUTES

    2. You need:
    >>diff.days
    0
    >>diff.second s
    52662
    >>diff.microsec onds
    922000
    >>minutes = (diff.seconds + diff.microsecon ds / 1000000.0) / 60.0
    >>minutes
    877.71536666666 668

    8<----------------------------

    Comment

    • Ant

      #3
      Re: How to get hours and minutes from 'datetime.timed elta' object?


      John Machin wrote:
      Lad wrote:
      Hello,
      what is the best /easest way how to get number of hours and minutes
      from a timedelta object?
      ....
      >diff.days
      0
      >diff.seconds
      52662
      >diff.microseco nds
      922000
      >minutes = (diff.seconds + diff.microsecon ds / 1000000.0) / 60.0
      >minutes
      877.71536666666 668
      I suspect what Lad wanted was something more like:
      >>def secs_mins_hours (timed):
      .... total_secs = timed.seconds
      .... secs = total_secs % 60
      .... total_mins = total_secs / 60
      .... mins = total_mins % 60
      .... hours = total_mins / 60
      .... return (secs, mins, hours)
      >>aa=datetime.d atetime(2006, 7, 29, 16, 13, 56, 609000)
      >>bb=datetime.d atetime(2006, 8, 3, 17, 59, 36, 46000)
      >>td = aa - bb
      >>secs_mins_hou rs(td)
      (39, 45, 1)

      I'm surprised that the timedelta class hasn't got secs, mins and hours
      properties - they could be generated on the fly in a similar way.

      Comment

      • John Machin

        #4
        Re: How to get hours and minutes from 'datetime.timed elta' object?


        Ant wrote:
        John Machin wrote:
        Lad wrote:
        Hello,
        what is the best /easest way how to get number of hours and minutes
        from a timedelta object?
        ...
        >>diff.days
        0
        >>diff.second s
        52662
        >>diff.microsec onds
        922000
        >>minutes = (diff.seconds + diff.microsecon ds / 1000000.0) / 60.0
        >>minutes
        877.71536666666 668
        >
        I suspect what Lad wanted was something more like:
        1. If that's what he wanted, it was a very peculiar way of asking. Do
        you suspect that he needs to be shown how to conver 877.7... minutes
        into hours, minutes and seconds???

        2. Please consider that the order of the result would be more
        conventionally presented as (hours, minutes, seconds) -- or do you
        suspect that the OP needs it presented bassackwards?
        >
        >def secs_mins_hours (timed):
        ... total_secs = timed.seconds
        ... secs = total_secs % 60
        ... total_mins = total_secs / 60
        ... mins = total_mins % 60
        ... hours = total_mins / 60
        ... return (secs, mins, hours)
        >aa=datetime.da tetime(2006, 7, 29, 16, 13, 56, 609000)
        >bb=datetime.da tetime(2006, 8, 3, 17, 59, 36, 46000)
        >td = aa - bb
        >secs_mins_hour s(td)
        (39, 45, 1)
        >
        I'm surprised that the timedelta class hasn't got secs, mins and hours
        properties - they could be generated on the fly in a similar way.

        Comment

        • Ant

          #5
          Re: How to get hours and minutes from 'datetime.timed elta' object?


          John Machin wrote:
          ....
          1. If that's what he wanted, it was a very peculiar way of asking. Do
          you suspect that he needs to be shown how to conver 877.7... minutes
          into hours, minutes and seconds???
          Chill dude, It wasn't an attack :-)

          The datetime class has hour, minute and second attributes that give the
          values of each as being in range(24) (hours) and range(60). i.e.
          integers. So an educated guess leads me to the conclusion that it is
          similar functionality that he wants from the timedelta class.
          2. Please consider that the order of the result would be more
          conventionally presented as (hours, minutes, seconds) -- or do you
          Very good point. That would have been a tricky issue for the OP, and
          for that I apologise.
          suspect that the OP needs it presented bassackwards?
          I think that you have that last word muddled. Not quite ass-backward,
          but close ;-)

          Comment

          • John Machin

            #6
            Re: How to get hours and minutes from 'datetime.timed elta' object?


            Ant wrote:
            John Machin wrote:
            ...
            1. If that's what he wanted, it was a very peculiar way of asking. Do
            you suspect that he needs to be shown how to conver 877.7... minutes
            into hours, minutes and seconds???
            >
            Chill dude, It wasn't an attack :-)
            I didn't think it was.
            >
            The datetime class has hour, minute and second attributes that give the
            values of each as being in range(24) (hours) and range(60). i.e.
            integers. So an educated guess leads me to the conclusion that it is
            similar functionality that he wants from the timedelta class.
            >
            2. Please consider that the order of the result would be more
            conventionally presented as (hours, minutes, seconds) -- or do you
            >
            Very good point. That would have been a tricky issue for the OP, and
            for that I apologise.
            >
            suspect that the OP needs it presented bassackwards?
            >
            I think that you have that last word muddled. Not quite ass-backward,
            but close ;-)
            On the contrary. It means "ass-backward, and then some". Google
            "dictionary bassackwards" and read the first few hits.

            Cheers,
            John

            Comment

            Working...