Improvement: better duration display
This commit is contained in:
@@ -37,6 +37,7 @@ import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.TimeZone;
|
||||
import java.util.concurrent.ArrayBlockingQueue;
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
|
||||
@@ -910,16 +911,12 @@ public class Client {
|
||||
try {
|
||||
DateFormat date_parse_minute = new SimpleDateFormat("m:s");
|
||||
DateFormat date_parse_hour = new SimpleDateFormat("h:m:s");
|
||||
SimpleDateFormat date_output_minute = new SimpleDateFormat("mm'min'ss");
|
||||
SimpleDateFormat date_output_hour = new SimpleDateFormat("HH'h'mm'min'ss");
|
||||
DateFormat date_parse = date_parse_minute;
|
||||
DateFormat date_output = date_output_minute;
|
||||
if (remaining_time.split(":").length > 2) {
|
||||
date_parse = date_parse_hour;
|
||||
date_output = date_output_hour;
|
||||
}
|
||||
Date d1 = date_parse.parse(remaining_time);
|
||||
this.gui.status(String.format("Rendering (remaining %s)", date_output.format(d1)));
|
||||
date_parse.setTimeZone(TimeZone.getTimeZone("GMT"));
|
||||
this.gui.status(String.format("Rendering (remaining %s)", Utils.humanDuration(date_parse.parse(remaining_time))));
|
||||
}
|
||||
catch (ParseException err) {
|
||||
this.log.error("Client::updateRenderingStatus ParseException " + err);
|
||||
|
||||
@@ -28,6 +28,9 @@ import java.io.InputStream;
|
||||
import java.math.BigInteger;
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.TimeZone;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.zip.ZipEntry;
|
||||
@@ -232,4 +235,25 @@ public class Utils {
|
||||
}
|
||||
return Math.round(Double.parseDouble(m.group(1)) * scale);
|
||||
}
|
||||
|
||||
public static String humanDuration(Date date) {
|
||||
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
|
||||
calendar.setTime(date);
|
||||
|
||||
int hours = (calendar.get(Calendar.DAY_OF_MONTH) - 1) * 24 + calendar.get(Calendar.HOUR_OF_DAY);
|
||||
int minutes = calendar.get(Calendar.MINUTE);
|
||||
int seconds = calendar.get(Calendar.SECOND);
|
||||
|
||||
String output = "";
|
||||
if (hours > 0) {
|
||||
output += hours + "h";
|
||||
}
|
||||
if (minutes > 0) {
|
||||
output += minutes + "min";
|
||||
}
|
||||
if (seconds > 0) {
|
||||
output += seconds + "s";
|
||||
}
|
||||
return output;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user