DO NOT MERGE Fix TimeUtils.formatDuration for exactly one of a unit
Previously printing a duration where a unit (except ms) was one and the next smallest unit was zero would result in the duration being being expressed in the next smallest unit. For example 1m0s0ms would be formatted as 60s0ms. Update testFormatHugeDuration to supporting times > 999 days The implementation was fixed in3d1933c45fCherry-picked fromf9a80cbbfeChange-Id: I9d609f7a0f82755ea653a205293a6e3785a10d1e
This commit is contained in:
committed by
Randy Pan
parent
deced11e1a
commit
5220b4a6ae
@@ -343,15 +343,15 @@ public class TimeUtils {
|
||||
int seconds = (int) Math.floor(duration / 1000);
|
||||
int days = 0, hours = 0, minutes = 0;
|
||||
|
||||
if (seconds > SECONDS_PER_DAY) {
|
||||
if (seconds >= SECONDS_PER_DAY) {
|
||||
days = seconds / SECONDS_PER_DAY;
|
||||
seconds -= days * SECONDS_PER_DAY;
|
||||
}
|
||||
if (seconds > SECONDS_PER_HOUR) {
|
||||
if (seconds >= SECONDS_PER_HOUR) {
|
||||
hours = seconds / SECONDS_PER_HOUR;
|
||||
seconds -= hours * SECONDS_PER_HOUR;
|
||||
}
|
||||
if (seconds > SECONDS_PER_MINUTE) {
|
||||
if (seconds >= SECONDS_PER_MINUTE) {
|
||||
minutes = seconds / SECONDS_PER_MINUTE;
|
||||
seconds -= minutes * SECONDS_PER_MINUTE;
|
||||
}
|
||||
|
||||
@@ -436,15 +436,17 @@ public class TimeUtilsTest extends TestCase {
|
||||
assertFormatDuration("+100ms", 100);
|
||||
assertFormatDuration("+101ms", 101);
|
||||
assertFormatDuration("+330ms", 330);
|
||||
assertFormatDuration("+1s0ms", 1000);
|
||||
assertFormatDuration("+1s330ms", 1330);
|
||||
assertFormatDuration("+10s24ms", 10024);
|
||||
assertFormatDuration("+1m0s30ms", 60030);
|
||||
assertFormatDuration("+1h0m0s30ms", 3600030);
|
||||
assertFormatDuration("+1d0h0m0s30ms", 86400030);
|
||||
}
|
||||
|
||||
public void testFormatHugeDuration() {
|
||||
//assertFormatDuration("+15542d1h11m11s555ms", 1342833071555L);
|
||||
// TODO: improve formatDuration() API
|
||||
assertFormatDuration("+999d23h59m59s999ms", 1342833071555L);
|
||||
assertFormatDuration("-999d23h59m59s999ms", -1342833071555L);
|
||||
assertFormatDuration("+15542d1h11m11s555ms", 1342833071555L);
|
||||
assertFormatDuration("-15542d1h11m11s555ms", -1342833071555L);
|
||||
}
|
||||
|
||||
private void assertFormatDuration(String expected, long duration) {
|
||||
|
||||
Reference in New Issue
Block a user