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 ...@@ -57,41 +57,45 @@ public final class DateTimeUtils
zoneString.append(prependZeroIfNeeded(num)); zoneString.append(prependZeroIfNeeded(num));
return "GMT" + zoneString.toString(); return "GMT" + zoneString.toString();
} }
private final static String prependZeroIfNeeded(final int num) private final static String prependZeroIfNeeded(final int num)
{ {
return num < 10 ? "0" + num : "" + 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) if (durationInSeconds < 100)
{ {
return render(durationInSeconds, "second"); return render(durationInSeconds, "sec");
} }
long durationInMinutes = (durationInSeconds + 30) / 60; long durationInMinutes = (durationInSeconds + 30) / 60;
if (durationInMinutes < 60) if (durationInMinutes < 60)
{ {
return render(durationInMinutes, "minute"); return render(durationInMinutes, "min");
} }
long minutes = durationInMinutes % 60; long minutes = durationInMinutes % 60;
long hours = 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) 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. * Extends the given <var>date</var> until the end of the day.
*/ */
...@@ -101,5 +105,4 @@ public final class DateTimeUtils ...@@ -101,5 +105,4 @@ public final class DateTimeUtils
Calendar.DAY_OF_MONTH), 1), -1); Calendar.DAY_OF_MONTH), 1), -1);
} }
} }
...@@ -34,17 +34,17 @@ public class DateTimeUtilsTest extends AssertJUnit ...@@ -34,17 +34,17 @@ public class DateTimeUtilsTest extends AssertJUnit
@Test @Test
public void testRenderDuration() public void testRenderDuration()
{ {
assertEquals("42 milliseconds", DateTimeUtils.renderDuration(42)); assertEquals("1sec", DateTimeUtils.renderDuration(42));
assertEquals("1 second", DateTimeUtils.renderDuration(1000)); assertEquals("1sec", DateTimeUtils.renderDuration(1000));
assertEquals("42 seconds", DateTimeUtils.renderDuration(42 * 1000 + 499)); assertEquals("42sec", DateTimeUtils.renderDuration(42 * 1000 + 499));
assertEquals("42 seconds", DateTimeUtils.renderDuration(42 * 1000 - 499)); assertEquals("42sec", DateTimeUtils.renderDuration(42 * 1000 - 499));
assertEquals("99 seconds", DateTimeUtils.renderDuration(99 * 1000)); assertEquals("99sec", DateTimeUtils.renderDuration(99 * 1000));
assertEquals("2 minutes", DateTimeUtils.renderDuration(100 * 1000)); assertEquals("2min", DateTimeUtils.renderDuration(100 * 1000));
assertEquals("42 minutes", DateTimeUtils.renderDuration(42 * 1000 * 60)); assertEquals("42min", DateTimeUtils.renderDuration(42 * 1000 * 60));
assertEquals("59 minutes", DateTimeUtils.renderDuration(59 * 1000 * 60)); assertEquals("59min", DateTimeUtils.renderDuration(59 * 1000 * 60));
assertEquals("1 hour and 0 minutes", DateTimeUtils.renderDuration(60 * 1000 * 60)); assertEquals("1h 0min", DateTimeUtils.renderDuration(60 * 1000 * 60));
assertEquals("1 hour and 1 minute", DateTimeUtils.renderDuration(61 * 1000 * 60)); assertEquals("1h 1min", DateTimeUtils.renderDuration(61 * 1000 * 60));
assertEquals("2 hours and 3 minutes", DateTimeUtils.renderDuration(123 * 1000 * 60)); assertEquals("2h 3min", DateTimeUtils.renderDuration(123 * 1000 * 60));
} }
@Test @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