View Javadoc
1   package net.logAnalyzer.utils;
2   
3   import java.util.Date;
4   
5   /***
6    * A simple toolkit to manipulate dates.
7    * 
8    * @author Karim REFEYTON
9    * @version 1.0
10   */
11  public class DateUtils {
12  
13      /***
14       * Creation forbidden...
15       */
16      private DateUtils() {
17          super();
18      }
19  
20      /***
21       * Return the date diff in a formatted string like "hh:mm:ss". The result is
22       * an absolute value.
23       * 
24       * @param date1
25       * @param date2
26       * @return Formatted date diff.
27       */
28      public static String dateDiffInHours(Date date1, Date date2) {
29          if (date1.compareTo(date2) < 0) {
30              // Switches dates
31              Date dateSW = date2;
32              date2 = date1;
33              date1 = dateSW;
34          }
35  
36          long elapsed = date1.getTime() - date2.getTime();
37  
38          long hours = elapsed / 1000 / 3600;
39          long minutes = elapsed / 1000 / 60 - hours * 60;
40          long seconds = elapsed / 1000 - minutes * 60 - hours * 3600;
41  
42          return StringUtils.formatRight(hours, 2, '0') + ":"
43                  + StringUtils.formatRight(minutes, 2, '0') + ":"
44                  + StringUtils.formatRight(seconds, 2, '0');
45      }
46  
47      /***
48       * Return the date diff in seconds. The result is an absolute value.
49       * 
50       * @param date1
51       * @param date2
52       * @return Long date diff in seconds.
53       */
54      public static long dateDiffInSeconds(Date date1, Date date2) {
55          if (date1.compareTo(date2) < 0) {
56              // Switches dates
57              Date dateSW = date2;
58              date2 = date1;
59              date1 = dateSW;
60          }
61          return (long) ((date1.getTime() - date2.getTime()) / 1000);
62      }
63  }