1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.audit.rest;
18
19 import java.text.DecimalFormat;
20
21 public class ElapsedUtil {
22
23 private static long NANO_PER_SECOND = 1000000000L;
24 private static long NANO_PER_MINUTE = NANO_PER_SECOND * 60;
25 private static long NANO_PER_HOUR = NANO_PER_MINUTE * 60;
26
27 static void addElapsed(long elapsed, StringBuilder msg) {
28 long nanoseconds = elapsed;
29
30 long hours = nanoseconds / NANO_PER_HOUR;
31
32 nanoseconds = nanoseconds % NANO_PER_HOUR;
33
34 long minutes = nanoseconds / NANO_PER_MINUTE;
35
36 nanoseconds = nanoseconds % NANO_PER_MINUTE;
37
38 long seconds = nanoseconds / NANO_PER_SECOND;
39
40 nanoseconds = nanoseconds % NANO_PER_SECOND;
41
42 if (hours > 0) {
43 msg.append(hours).append(" hours ");
44 }
45 if (minutes > 0 || hours > 0) {
46 msg.append(minutes).append(" minutes ");
47 }
48
49 DecimalFormat numFormat = null;
50 numFormat = new DecimalFormat("#0");
51 msg.append(numFormat.format(seconds)).append('.');
52 numFormat = new DecimalFormat("000000000");
53 msg.append(numFormat.format(nanoseconds)).append(" seconds");
54 }
55 }