101 return translate(_("%d hours ago")) % hours |
101 return translate(_("%d hours ago")) % hours |
102 elif delta.seconds > 300: |
102 elif delta.seconds > 300: |
103 return translate(_("%d minutes ago")) % int(round(delta.seconds * 1.0 / 60)) |
103 return translate(_("%d minutes ago")) % int(round(delta.seconds * 1.0 / 60)) |
104 else: |
104 else: |
105 return translate(_("less than 5 minutes ago")) |
105 return translate(_("less than 5 minutes ago")) |
|
106 |
|
107 |
|
108 def getDuration(v1, v2=None): |
|
109 """Get delta between two dates""" |
|
110 if v2 is None: |
|
111 v2 = datetime.utcnow() |
|
112 assert isinstance(v1, datetime) and isinstance(v2, datetime) |
|
113 v1, v2 = min(v1, v2), max(v1, v2) |
|
114 delta = v2 - v1 |
|
115 if delta.days > 60: |
|
116 return translate(_("%d months")) % int(round(delta.days * 1.0 / 30)) |
|
117 elif delta.days > 10: |
|
118 return translate(_("%d weeks")) % int(round(delta.days * 1.0 / 7)) |
|
119 elif delta.days >= 2: |
|
120 return translate(_("%d days")) % delta.days |
|
121 else: |
|
122 hours = int(round(delta.seconds * 1.0 / 3600)) |
|
123 if delta.days == 1: |
|
124 return translate(_("%d day and %d hours")) % (delta.days, hours) |
|
125 else: |
|
126 if hours > 2: |
|
127 return translate(_("%d hours")) % hours |
|
128 else: |
|
129 minutes = int(round(delta.seconds * 1.0 / 60)) |
|
130 if minutes > 2: |
|
131 return translate(_("%d minutes")) % minutes |
|
132 else: |
|
133 return translate(_("%d seconds")) % delta.seconds |