ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/util/uk/org/iscream/cms/util/DateUtils.java
Revision: 1.1
Committed: Sat Feb 3 23:03:30 2001 UTC (23 years, 3 months ago) by tdb
Branch: MAIN
Log Message:
Initial import of the DateUtils class, taken from the DBReporter - thought it
could be useful in other parts of the system too.

File Contents

# User Rev Content
1 tdb 1.1 //---PACKAGE DECLARATION---
2     package uk.ac.ukc.iscream.util;
3    
4     //---IMPORTS---
5     import java.util.*;
6     import java.text.*;
7    
8     /**
9     * Provides easy to use date functions.
10     *
11     * @author $Author$
12     * @version $Id$
13     */
14     public class DateUtils {
15    
16     //---FINAL ATTRIBUTES---
17    
18     /**
19     * The current CVS revision of this class
20     */
21     public final String REVISION = "$Revision: 1.1 $";
22    
23     public static final long secsPerMonth = 30*24*60*60;
24     public static final long secsPerWeek = 7*24*60*60;
25     public static final long secsPerDay = 24*60*60;
26     public static final long secsPerHour = 60*60;
27    
28     //---STATIC METHODS---
29    
30     /**
31     * Return the number of seconds between the epoch and midnight earlier today.
32     */
33     public static long startOfToday(){
34     SimpleDateFormat formatter = new SimpleDateFormat("yyyy.MM.dd");
35     Date midnight = new Date();
36     String then = formatter.format(midnight);
37    
38     ParsePosition pos = new ParsePosition(0);
39     midnight = formatter.parse(then, pos);
40    
41     return midnight.getTime()/1000;
42     }
43    
44     /**
45     * Return the number of seconds between the epoch and now.
46     */
47     public static long now(){
48     Date now = new Date();
49     return now.getTime()/1000;
50     }
51    
52     /**
53     * Accept a long representing the number of seconds since the epoch.
54     * An integer specifies the number of months to subtract.
55     * Returns a long representing the number of seconds since the epoch.
56     */
57     public static long subtractMonths(long before, int months){
58     return before - months*secsPerMonth;
59     }
60    
61     /**
62     * Accept a long representing the number of seconds since the epoch.
63     * An integer specifies the number of weeks to subtract.
64     * Returns a long representing the number of seconds since the epoch.
65     */
66     public static long subtractWeeks(long before, int weeks){
67     return before - weeks*secsPerWeek;
68     }
69    
70     /**
71     * Accept a long representing the number of seconds since the epoch.
72     * An integer specifies the number of days to subtract.
73     * Returns a long representing the number of seconds since the epoch.
74     */
75     public static long subtractDays(long before, int days){
76     return before - days*secsPerDay;
77     }
78    
79     /**
80     * Accept a long representing the number of seconds since the epoch.
81     * An integer specifies the number of hours to subtract.
82     * Returns a long representing the number of seconds since the epoch.
83     */
84     public static long subtractHours(long before, int hours){
85     return before - hours*secsPerHour;
86     }
87    
88     /**
89     * Return a nice String representation of the date.
90     */
91     public static String dateString(long t){
92     SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
93     Date conv = new Date(t*1000);
94     return formatter.format(conv);
95     }
96    
97     /**
98     * Return a nice short String representation of the date.
99     */
100     public static String shortDateString(long t){
101     SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
102     Date conv = new Date(t*1000);
103     return formatter.format(conv);
104     }
105    
106     /**
107     * Return a String representation of the hour.
108     */
109     public static String hourString(long t){
110     SimpleDateFormat formatter = new SimpleDateFormat("H");
111     Date conv = new Date(t*1000);
112     return formatter.format(conv);
113     }
114    
115     /**
116     * Return a String representation of the day name (short format).
117     */
118     public static String dayName(long t){
119     SimpleDateFormat formatter = new SimpleDateFormat("EEE");
120     Date conv = new Date(t*1000);
121     return formatter.format(conv);
122     }
123    
124     /**
125     * Return a String representation of the time (short format).
126     */
127     public static String timeString(long t){
128     SimpleDateFormat formatter = new SimpleDateFormat("HH:mm");
129     Date conv = new Date(t*1000);
130     return formatter.format(conv);
131     }
132    
133    
134     //---CONSTRUCTORS---
135    
136     //---PUBLIC METHODS---
137    
138     /**
139     * Overrides the {@link java.lang.Object#toString() Object.toString()}
140     * method to provide clean logging (every class should have this).
141     *
142     * This uses the uk.ac.ukc.iscream.util.FormatName class
143     * to format the toString()
144     *
145     * @return the name of this class and its CVS revision
146     */
147     public String toString() {
148     return FormatName.getName(
149     _name,
150     getClass().getName(),
151     REVISION);
152     }
153    
154     //---PRIVATE METHODS---
155    
156     //---ACCESSOR/MUTATOR METHODS---
157    
158     //---ATTRIBUTES---
159    
160     /**
161     * This is the friendly identifier of the
162     * component this class is running in.
163     * eg, a Filter may be called "filter1",
164     * If this class does not have an owning
165     * component, a name from the configuration
166     * can be placed here. This name could also
167     * be changed to null for utility classes.
168     */
169     private String _name = null;
170    
171     //---STATIC ATTRIBUTES---
172    
173     }