~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/osutils.py

Merge bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
596
596
    return time.strftime('%Y%m%d%H%M%S', time.gmtime(when))
597
597
    
598
598
 
 
599
def format_delta(delta):
 
600
    """Get a nice looking string for a time delta.
 
601
 
 
602
    :param delta: The time difference in seconds, can be positive or negative.
 
603
        positive indicates time in the past, negative indicates time in the
 
604
        future. (usually time.time() - stored_time)
 
605
    :return: String formatted to show approximate resolution
 
606
    """
 
607
    delta = int(delta)
 
608
    if delta >= 0:
 
609
        direction = 'ago'
 
610
    else:
 
611
        direction = 'in the future'
 
612
        delta = -delta
 
613
 
 
614
    seconds = delta
 
615
    if seconds < 90: # print seconds up to 90 seconds
 
616
        if seconds == 1:
 
617
            return '%d second %s' % (seconds, direction,)
 
618
        else:
 
619
            return '%d seconds %s' % (seconds, direction)
 
620
 
 
621
    minutes = int(seconds / 60)
 
622
    seconds -= 60 * minutes
 
623
    if seconds == 1:
 
624
        plural_seconds = ''
 
625
    else:
 
626
        plural_seconds = 's'
 
627
    if minutes < 90: # print minutes, seconds up to 90 minutes
 
628
        if minutes == 1:
 
629
            return '%d minute, %d second%s %s' % (
 
630
                    minutes, seconds, plural_seconds, direction)
 
631
        else:
 
632
            return '%d minutes, %d second%s %s' % (
 
633
                    minutes, seconds, plural_seconds, direction)
 
634
 
 
635
    hours = int(minutes / 60)
 
636
    minutes -= 60 * hours
 
637
    if minutes == 1:
 
638
        plural_minutes = ''
 
639
    else:
 
640
        plural_minutes = 's'
 
641
 
 
642
    if hours == 1:
 
643
        return '%d hour, %d minute%s %s' % (hours, minutes,
 
644
                                            plural_minutes, direction)
 
645
    return '%d hours, %d minute%s %s' % (hours, minutes,
 
646
                                         plural_minutes, direction)
599
647
 
600
648
def filesize(f):
601
649
    """Return size of given open file."""