diff --git a/src/zutil/StringUtil.java b/src/zutil/StringUtil.java index c57e566..76eea30 100644 --- a/src/zutil/StringUtil.java +++ b/src/zutil/StringUtil.java @@ -26,6 +26,65 @@ public class StringUtil { return value+" "+sizes[total]; } + public static String formatTimeToString(long milisec){ + StringBuilder str = new StringBuilder(); + long tmp = 0; + + // Years + if( milisec >= 31557032762.3361d ){ + tmp = (long) (milisec / 31557032762.3361d); + milisec -= tmp * 31557032762.3361d; + if( tmp > 1 ) + str.append(tmp).append(" years "); + else + str.append(tmp).append(" year "); + } + // Months + if( milisec >= 2629743830l ){ + tmp = (long) (milisec / 2629743830l); + milisec -= tmp * 2629743830l; + if( tmp > 1 ) + str.append(tmp).append(" months "); + else + str.append(tmp).append(" month "); + } + // Days + if( milisec >= 86400000 ){ + tmp = (long) (milisec / 86400000); + milisec -= tmp * 86400000; + if( tmp > 1 ) + str.append(tmp).append(" days "); + else + str.append(tmp).append(" day "); + } + // Hours + if( milisec >= 3600000 ){ + tmp = (long) (milisec / 3600000); + milisec -= tmp * 3600000; + if( tmp > 1 ) + str.append(tmp).append(" hours "); + else + str.append(tmp).append(" hour "); + } + // Minutes + if( milisec >= 60000 ){ + tmp = (long) (milisec / 60000); + milisec -= tmp * 60000; + str.append(tmp).append(" min "); + } + // sec + if( milisec >= 1000 ){ + tmp = (long) (milisec / 1000); + milisec -= tmp * 1000; + str.append(tmp).append(" sec "); + } + if( milisec > 0 ){ + str.append(milisec).append(" milisec "); + } + + return str.toString(); + } + /** * Trims the given char and whitespace at the beginning and the end * diff --git a/src/zutil/test/StringUtilTest.java b/src/zutil/test/StringUtilTest.java index ad86f72..fdc1232 100644 --- a/src/zutil/test/StringUtilTest.java +++ b/src/zutil/test/StringUtilTest.java @@ -9,29 +9,38 @@ public class StringUtilTest { @Test public void formatBytesToStringTest() { - assertEquals( StringUtil.formatBytesToString( 100 ), "100.0 B" ); - assertEquals( StringUtil.formatBytesToString( 10000 ), "9.7 kB" ); + assertEquals( "100.0 B", StringUtil.formatBytesToString( 100 ) ); + assertEquals( "9.7 kB", StringUtil.formatBytesToString( 10000 ) ); } + @Test + public void formatTimeToStringTest() { + assertEquals( "1 sec ", StringUtil.formatTimeToString( 1000 ) ); + assertEquals( "1 month 1 day 1 hour 1 min 1 sec 1 milisec ", + StringUtil.formatTimeToString( 2629743830l+86400000+3600000+60000+1000+1 ) ); + assertEquals( "2 months 2 days 2 hours 2 min 2 sec 2 milisec ", + StringUtil.formatTimeToString( (2629743830l+86400000+3600000+60000+1000+1)*2 ) ); + } + @Test public void trimTest() { - assertEquals( StringUtil.trim("", ' '), "" ); - assertEquals( StringUtil.trim(" aa ", ' '), "aa" ); - assertEquals( StringUtil.trim("aa ", ' '), "aa" ); - assertEquals( StringUtil.trim(" aa", ' '), "aa" ); - assertEquals( StringUtil.trim(" aa ", 'a'), "" ); - assertEquals( StringUtil.trim("\u0010 aa ", ' '), "aa" ); - assertEquals( StringUtil.trim("\n\naa\n\t", ' '), "aa" ); - assertEquals( StringUtil.trim("\"aa\"", '\"'), "aa" ); + assertEquals( "", StringUtil.trim("", ' ') ); + assertEquals( "aa", StringUtil.trim(" aa ", ' ') ); + assertEquals( "aa", StringUtil.trim("aa ", ' ') ); + assertEquals( "aa", StringUtil.trim(" aa", ' ') ); + assertEquals( "", StringUtil.trim(" aa ", 'a') ); + assertEquals( "aa", StringUtil.trim("\u0010 aa ", ' ') ); + assertEquals( "aa", StringUtil.trim("\n\naa\n\t", ' ') ); + assertEquals( "aa", StringUtil.trim("\"aa\"", '\"') ); } @Test public void trimQuotesTest() { - assertEquals( StringUtil.trimQuotes(""), "" ); - assertEquals( StringUtil.trimQuotes("\""), "\"" ); - assertEquals( StringUtil.trimQuotes("\"\""), "" ); - assertEquals( StringUtil.trimQuotes("\"aa"), "\"aa" ); - assertEquals( StringUtil.trimQuotes("aa\""), "aa\"" ); - assertEquals( StringUtil.trimQuotes("\"aa\""), "aa" ); + assertEquals( "", StringUtil.trimQuotes("") ); + assertEquals( "\"", StringUtil.trimQuotes("\"") ); + assertEquals( "", StringUtil.trimQuotes("\"\"") ); + assertEquals( "\"aa", StringUtil.trimQuotes("\"aa") ); + assertEquals( "aa\"", StringUtil.trimQuotes("aa\"") ); + assertEquals( "aa", StringUtil.trimQuotes("\"aa\"") ); } }