Loading core/java/android/util/TimeUtils.java +11 −3 Original line number Diff line number Diff line Loading @@ -18,8 +18,10 @@ package android.util; import android.content.res.Resources; import android.content.res.XmlResourceParser; import android.text.format.DateUtils; import com.android.internal.util.XmlUtils; import libcore.util.ZoneInfoDB; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; Loading @@ -28,10 +30,10 @@ import java.io.PrintWriter; import java.util.ArrayList; import java.util.Calendar; import java.util.Collection; import java.util.TimeZone; import java.util.Date; import java.util.TimeZone; import com.android.internal.util.XmlUtils; import libcore.util.ZoneInfoDB; /** * A class containing utility methods related to time zones. Loading Loading @@ -245,6 +247,8 @@ public class TimeUtils { private static final Object sFormatSync = new Object(); private static char[] sFormatStr = new char[HUNDRED_DAY_FIELD_LEN+5]; private static final long LARGEST_DURATION = (1000 * DateUtils.DAY_IN_MILLIS) - 1; static private int accumField(int amt, int suffix, boolean always, int zeropad) { if (amt > 99 || (always && zeropad >= 3)) { return 3+suffix; Loading Loading @@ -307,6 +311,10 @@ public class TimeUtils { duration = -duration; } if (duration > LARGEST_DURATION) { duration = LARGEST_DURATION; } int millis = (int)(duration%1000); int seconds = (int) Math.floor(duration / 1000); int days = 0, hours = 0, minutes = 0; Loading core/tests/coretests/src/android/util/TimeUtilsTest.java +7 −2 Original line number Diff line number Diff line Loading @@ -18,8 +18,6 @@ package android.util; import junit.framework.TestCase; import android.util.TimeUtils; import java.util.Calendar; import java.util.TimeZone; Loading Loading @@ -442,6 +440,13 @@ public class TimeUtilsTest extends TestCase { assertFormatDuration("+10s24ms", 10024); } public void testFormatHugeDuration() { //assertFormatDuration("+15542d1h11m11s555ms", 1342833071555L); // TODO: improve formatDuration() API assertFormatDuration("+999d23h59m59s999ms", 1342833071555L); assertFormatDuration("-999d23h59m59s999ms", -1342833071555L); } private void assertFormatDuration(String expected, long duration) { StringBuilder sb = new StringBuilder(); TimeUtils.formatDuration(duration, sb); Loading Loading
core/java/android/util/TimeUtils.java +11 −3 Original line number Diff line number Diff line Loading @@ -18,8 +18,10 @@ package android.util; import android.content.res.Resources; import android.content.res.XmlResourceParser; import android.text.format.DateUtils; import com.android.internal.util.XmlUtils; import libcore.util.ZoneInfoDB; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; Loading @@ -28,10 +30,10 @@ import java.io.PrintWriter; import java.util.ArrayList; import java.util.Calendar; import java.util.Collection; import java.util.TimeZone; import java.util.Date; import java.util.TimeZone; import com.android.internal.util.XmlUtils; import libcore.util.ZoneInfoDB; /** * A class containing utility methods related to time zones. Loading Loading @@ -245,6 +247,8 @@ public class TimeUtils { private static final Object sFormatSync = new Object(); private static char[] sFormatStr = new char[HUNDRED_DAY_FIELD_LEN+5]; private static final long LARGEST_DURATION = (1000 * DateUtils.DAY_IN_MILLIS) - 1; static private int accumField(int amt, int suffix, boolean always, int zeropad) { if (amt > 99 || (always && zeropad >= 3)) { return 3+suffix; Loading Loading @@ -307,6 +311,10 @@ public class TimeUtils { duration = -duration; } if (duration > LARGEST_DURATION) { duration = LARGEST_DURATION; } int millis = (int)(duration%1000); int seconds = (int) Math.floor(duration / 1000); int days = 0, hours = 0, minutes = 0; Loading
core/tests/coretests/src/android/util/TimeUtilsTest.java +7 −2 Original line number Diff line number Diff line Loading @@ -18,8 +18,6 @@ package android.util; import junit.framework.TestCase; import android.util.TimeUtils; import java.util.Calendar; import java.util.TimeZone; Loading Loading @@ -442,6 +440,13 @@ public class TimeUtilsTest extends TestCase { assertFormatDuration("+10s24ms", 10024); } public void testFormatHugeDuration() { //assertFormatDuration("+15542d1h11m11s555ms", 1342833071555L); // TODO: improve formatDuration() API assertFormatDuration("+999d23h59m59s999ms", 1342833071555L); assertFormatDuration("-999d23h59m59s999ms", -1342833071555L); } private void assertFormatDuration(String expected, long duration) { StringBuilder sb = new StringBuilder(); TimeUtils.formatDuration(duration, sb); Loading