Added new function to format time to a string

This commit is contained in:
Ziver Koc 2011-02-15 19:18:18 +00:00
parent bae2d91e8c
commit 4f97289dfe
2 changed files with 84 additions and 16 deletions

View file

@ -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
*

View file

@ -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\"") );
}
}