Calculating Time Difference

前端 未结 5 1998
情话喂你
情话喂你 2020-12-02 16:47

at the start and end of my program, I have

from time import strftime
print int(strftime(\"%Y-%m-%d %H:%M:%S\")



Y1=int(strftime(\"%Y\"))
m1=int(strftime(\         


        
相关标签:
5条回答
  • 2020-12-02 17:09

    time.monotonic() (basically your computer's uptime in seconds) is guarranteed to not misbehave when your computer's clock is adjusted (such as when transitioning to/from daylight saving time).

    >>> import time
    >>>
    >>> time.monotonic()
    452782.067158593
    >>>
    >>> a = time.monotonic()
    >>> time.sleep(1)
    >>> b = time.monotonic()
    >>> print(b-a)
    1.001658110995777
    
    0 讨论(0)
  • 2020-12-02 17:17

    Here is a piece of code to do so:

    def(StringChallenge(str1)):

    #str1 = str1[1:-1]
    h1 = 0
    h2 = 0
    m1 = 0
    m2 = 0
    
    def time_dif(h1,m1,h2,m2):
        if(h1 == h2):
            return m2-m1
        else:
            return ((h2-h1-1)*60 + (60-m1) + m2)
    count_min = 0
    
    if str1[1] == ':':
        h1=int(str1[:1])
        m1=int(str1[2:4])
    else:
        h1=int(str1[:2])
        m1=int(str1[3:5])
    
    if str1[-7] == '-':
        h2=int(str1[-6])
        m2=int(str1[-4:-2])
    else:
        h2=int(str1[-7:-5])
        m2=int(str1[-4:-2])
    
    if h1 == 12:
        h1 = 0
    if h2 == 12:
        h2 = 0
    
    if "am" in str1[:8]:
        flag1 = 0
    else:
        flag1= 1
    
    if "am" in str1[7:]:
        flag2 = 0
    else:
        flag2 = 1
    
    if flag1 == flag2:
        if h2 > h1 or (h2 == h1 and m2 >= m1):
            count_min += time_dif(h1,m1,h2,m2)
        else:
            count_min += 1440 - time_dif(h2,m2,h1,m1)
    else:
        count_min += (12-h1-1)*60
        count_min += (60 - m1)
        count_min += (h2*60)+m2
    
    
    return count_min
    
    0 讨论(0)
  • 2020-12-02 17:27

    The datetime module will do all the work for you:

    >>> import datetime
    >>> a = datetime.datetime.now()
    >>> # ...wait a while...
    >>> b = datetime.datetime.now()
    >>> print(b-a)
    0:03:43.984000
    

    If you don't want to display the microseconds, just use (as gnibbler suggested):

    >>> a = datetime.datetime.now().replace(microsecond=0)
    >>> b = datetime.datetime.now().replace(microsecond=0)
    >>> print(b-a)
    0:03:43
    
    0 讨论(0)
  • 2020-12-02 17:28

    You cannot calculate the differences separately ... what difference would that yield for 7:59 and 8:00 o'clock? Try

    import time
    time.time()
    

    which gives you the seconds since the start of the epoch.

    You can then get the intermediate time with something like

    timestamp1 = time.time()
    # Your code here
    timestamp2 = time.time()
    print "This took %.2f seconds" % (timestamp2 - timestamp1)
    
    0 讨论(0)
  • 2020-12-02 17:30
    from time import time
    
    start_time = time()
    ...
    
    end_time = time()
    seconds_elapsed = end_time - start_time
    
    hours, rest = divmod(seconds_elapsed, 3600)
    minutes, seconds = divmod(rest, 60)
    
    0 讨论(0)
提交回复
热议问题