updated based on latest changes in LoadingBar
This commit is contained in:
		@@ -1,3 +1,6 @@
 | 
				
			|||||||
 | 
					import java.math.BigDecimal;
 | 
				
			||||||
 | 
					import java.math.MathContext;
 | 
				
			||||||
 | 
					import java.math.RoundingMode;
 | 
				
			||||||
import java.text.DecimalFormat;
 | 
					import java.text.DecimalFormat;
 | 
				
			||||||
import java.time.LocalTime;
 | 
					import java.time.LocalTime;
 | 
				
			||||||
import java.time.format.DateTimeFormatter;
 | 
					import java.time.format.DateTimeFormatter;
 | 
				
			||||||
@@ -14,6 +17,7 @@ public class SimpleLoadingBar {
 | 
				
			|||||||
   private static final DecimalFormat PERCENTAGE_FORMAT = new DecimalFormat("00.00");
 | 
					   private static final DecimalFormat PERCENTAGE_FORMAT = new DecimalFormat("00.00");
 | 
				
			||||||
   private static final int MINS_PER_HOUR = 60;
 | 
					   private static final int MINS_PER_HOUR = 60;
 | 
				
			||||||
   private static final int LINE_LENGTH = 100;
 | 
					   private static final int LINE_LENGTH = 100;
 | 
				
			||||||
 | 
					   private static final MathContext MC_INTEGER = new MathContext(1, RoundingMode.HALF_EVEN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   public static void main(String[] args) {
 | 
					   public static void main(String[] args) {
 | 
				
			||||||
@@ -114,9 +118,11 @@ public class SimpleLoadingBar {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   private static String fillLoadingBar(long initialMinutes, long passedMinutes, boolean progressive) {
 | 
					   private static String fillLoadingBar(long initialMinutes, long passedMinutes, boolean progressive) {
 | 
				
			||||||
      double wholePercentage = ((double) passedMinutes / initialMinutes) * 100;
 | 
					      BigDecimal wholePercentage = BigDecimal.valueOf(100)
 | 
				
			||||||
 | 
					         .multiply(BigDecimal.valueOf(passedMinutes)
 | 
				
			||||||
 | 
					         .divide(BigDecimal.valueOf(initialMinutes), MathContext.DECIMAL64));
 | 
				
			||||||
      long remainingMinutes = initialMinutes - passedMinutes;
 | 
					      long remainingMinutes = initialMinutes - passedMinutes;
 | 
				
			||||||
      int numberOfEquals = (int) wholePercentage;
 | 
					      int numberOfEquals = wholePercentage.intValue();
 | 
				
			||||||
      var sb = new StringBuilder("[");
 | 
					      var sb = new StringBuilder("[");
 | 
				
			||||||
      for (int i = 0; i < LINE_LENGTH; i++) {
 | 
					      for (int i = 0; i < LINE_LENGTH; i++) {
 | 
				
			||||||
         if (i < numberOfEquals) {
 | 
					         if (i < numberOfEquals) {
 | 
				
			||||||
@@ -135,7 +141,9 @@ public class SimpleLoadingBar {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   private static String minutesToTimeString(long minutes) {
 | 
					   private static String minutesToTimeString(long minutes) {
 | 
				
			||||||
      return LocalTime.of((int) minutes / MINS_PER_HOUR, (int) minutes % MINS_PER_HOUR).format(TIME_FORMATTER);
 | 
					      var minutesBD = BigDecimal.valueOf(minutes);
 | 
				
			||||||
 | 
					      BigDecimal[] hoursAndMinutes = minutesBD.divideAndRemainder(BigDecimal.valueOf(MINS_PER_HOUR), MC_INTEGER);
 | 
				
			||||||
 | 
					      return LocalTime.of(hoursAndMinutes[0].intValue(), hoursAndMinutes[1].intValue()).format(TIME_FORMATTER);
 | 
				
			||||||
   }
 | 
					   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user