@@ -136,4 +136,41 @@ public String formatDouble(double number) {
136136 public String formatDate (Date date ) {
137137 return DATE_FORMAT .format (date );
138138 }
139+
140+ /**
141+ * Formats time in milliseconds in a human readable format.
142+ * @param time The time in milliseconds to format.
143+ * @return The time in a human readable format.
144+ */
145+ public String formatTime (Long time ) {
146+ final int SECONDS_PER_MINUTE = 60 ;
147+ final int MINUTES_PER_HOUR = 60 ;
148+ final int HOURS_PER_DAY = 24 ;
149+ final int DAYS_PER_WEEK = 7 ;
150+ final int DAYS_PER_MONTH = 30 ; // Approximation
151+ final int DAYS_PER_YEAR = 365 ; // Approximation
152+
153+ long totalSeconds = time / 1000 ;
154+
155+ long years = totalSeconds / (DAYS_PER_YEAR * HOURS_PER_DAY * MINUTES_PER_HOUR * SECONDS_PER_MINUTE );
156+ totalSeconds %= (DAYS_PER_YEAR * HOURS_PER_DAY * MINUTES_PER_HOUR * SECONDS_PER_MINUTE );
157+
158+ long months = totalSeconds / (DAYS_PER_MONTH * HOURS_PER_DAY * MINUTES_PER_HOUR * SECONDS_PER_MINUTE );
159+ totalSeconds %= (DAYS_PER_MONTH * HOURS_PER_DAY * MINUTES_PER_HOUR * SECONDS_PER_MINUTE );
160+
161+ long weeks = totalSeconds / (DAYS_PER_WEEK * HOURS_PER_DAY * MINUTES_PER_HOUR * SECONDS_PER_MINUTE );
162+ totalSeconds %= (DAYS_PER_WEEK * HOURS_PER_DAY * MINUTES_PER_HOUR * SECONDS_PER_MINUTE );
163+
164+ long days = totalSeconds / (HOURS_PER_DAY * MINUTES_PER_HOUR * SECONDS_PER_MINUTE );
165+ totalSeconds %= (HOURS_PER_DAY * MINUTES_PER_HOUR * SECONDS_PER_MINUTE );
166+
167+ long hours = totalSeconds / (MINUTES_PER_HOUR * SECONDS_PER_MINUTE );
168+ totalSeconds %= (MINUTES_PER_HOUR * SECONDS_PER_MINUTE );
169+
170+ long minutes = totalSeconds / SECONDS_PER_MINUTE ;
171+ totalSeconds %= SECONDS_PER_MINUTE ;
172+
173+ long seconds = totalSeconds ;
174+ return "" ;
175+ }
139176}
0 commit comments