Skip to content
Snippets Groups Projects
Commit 75afc70b authored by tpylak's avatar tpylak
Browse files

CFX-182 upload/download remaining time reporting - shorter and more...

CFX-182 upload/download remaining time reporting - shorter and more understandable labels, proper label at the start

SVN: 14325
parent 4cf678fb
No related branches found
No related tags found
No related merge requests found
......@@ -57,41 +57,45 @@ public final class DateTimeUtils
zoneString.append(prependZeroIfNeeded(num));
return "GMT" + zoneString.toString();
}
private final static String prependZeroIfNeeded(final int num)
{
return num < 10 ? "0" + num : "" + num;
}
/**
* Renders the specified duration.
* Renders the specified duration. If time is negative it is rendered as "?".
*/
public static String renderDuration(long durationInMilliseconds)
public static String renderDuration(long durationInMillisecondsOrNeg)
{
if (durationInMilliseconds < 1000)
if (durationInMillisecondsOrNeg < 0)
{
return "?";
}
if (durationInMillisecondsOrNeg < 1000)
{
return render(durationInMilliseconds, "millisecond");
return render(1, "sec");
}
long durationInSeconds = (durationInMilliseconds + 500) / 1000;
long durationInSeconds = (durationInMillisecondsOrNeg + 500) / 1000;
if (durationInSeconds < 100)
{
return render(durationInSeconds, "second");
return render(durationInSeconds, "sec");
}
long durationInMinutes = (durationInSeconds + 30) / 60;
if (durationInMinutes < 60)
{
return render(durationInMinutes, "minute");
return render(durationInMinutes, "min");
}
long minutes = durationInMinutes % 60;
long hours = durationInMinutes / 60;
return render(hours, "hour") + " and " + render(minutes, "minute");
return render(hours, "h") + " " + render(minutes, "min");
}
private static String render(long value, String unit)
{
return value == 1 ? value + " " + unit : value + " " + unit + "s";
return value + unit;
}
/**
* Extends the given <var>date</var> until the end of the day.
*/
......@@ -101,5 +105,4 @@ public final class DateTimeUtils
Calendar.DAY_OF_MONTH), 1), -1);
}
}
......@@ -34,17 +34,17 @@ public class DateTimeUtilsTest extends AssertJUnit
@Test
public void testRenderDuration()
{
assertEquals("42 milliseconds", DateTimeUtils.renderDuration(42));
assertEquals("1 second", DateTimeUtils.renderDuration(1000));
assertEquals("42 seconds", DateTimeUtils.renderDuration(42 * 1000 + 499));
assertEquals("42 seconds", DateTimeUtils.renderDuration(42 * 1000 - 499));
assertEquals("99 seconds", DateTimeUtils.renderDuration(99 * 1000));
assertEquals("2 minutes", DateTimeUtils.renderDuration(100 * 1000));
assertEquals("42 minutes", DateTimeUtils.renderDuration(42 * 1000 * 60));
assertEquals("59 minutes", DateTimeUtils.renderDuration(59 * 1000 * 60));
assertEquals("1 hour and 0 minutes", DateTimeUtils.renderDuration(60 * 1000 * 60));
assertEquals("1 hour and 1 minute", DateTimeUtils.renderDuration(61 * 1000 * 60));
assertEquals("2 hours and 3 minutes", DateTimeUtils.renderDuration(123 * 1000 * 60));
assertEquals("1sec", DateTimeUtils.renderDuration(42));
assertEquals("1sec", DateTimeUtils.renderDuration(1000));
assertEquals("42sec", DateTimeUtils.renderDuration(42 * 1000 + 499));
assertEquals("42sec", DateTimeUtils.renderDuration(42 * 1000 - 499));
assertEquals("99sec", DateTimeUtils.renderDuration(99 * 1000));
assertEquals("2min", DateTimeUtils.renderDuration(100 * 1000));
assertEquals("42min", DateTimeUtils.renderDuration(42 * 1000 * 60));
assertEquals("59min", DateTimeUtils.renderDuration(59 * 1000 * 60));
assertEquals("1h 0min", DateTimeUtils.renderDuration(60 * 1000 * 60));
assertEquals("1h 1min", DateTimeUtils.renderDuration(61 * 1000 * 60));
assertEquals("2h 3min", DateTimeUtils.renderDuration(123 * 1000 * 60));
}
@Test
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment