chg: adjust ticket number handling according to current number scheme
[gigi.git] / src / club / wpia / gigi / util / CalendarUtil.java
1 package club.wpia.gigi.util;
2
3 import java.util.Calendar;
4 import java.util.Date;
5 import java.util.GregorianCalendar;
6 import java.util.TimeZone;
7
8 public class CalendarUtil {
9
10     public static boolean isDateValid(int year, int month, int day) {
11
12         Calendar c = GregorianCalendar.getInstance();
13         c.set(year, month - 1, day);
14         return c.get(Calendar.YEAR) == year && c.get(Calendar.MONTH) == month - 1 && c.get(Calendar.DATE) == day;
15
16     }
17
18     /**
19      * @param date
20      *            YYYYMMDD
21      */
22     public static boolean isDateValid(String date) {
23         int year = Integer.parseInt(date.substring(0, 4));
24         int month = Integer.parseInt(date.substring(4, 6));
25         int day = Integer.parseInt(date.substring(6, 8));
26         return isDateValid(year, month, day);
27     }
28
29     public static boolean isOfAge(DayDate dob, int age) {
30         return isYearsInFuture(dob.start(), age);
31     }
32
33     public static boolean isYearsInFuture(Date dt, int age) {
34         Calendar c = Calendar.getInstance();
35         c.setTime(dt);
36         c.add(Calendar.YEAR, age);
37
38         return System.currentTimeMillis() >= c.getTime().getTime();
39     }
40
41     public static DayDate getDateFromComponents(int year, int month, int day) {
42         Calendar cal = Calendar.getInstance();
43         cal.setTimeZone(TimeZone.getTimeZone("UTC"));
44         cal.setTimeInMillis(0);
45         cal.set(year, month - 1, day, 0, 0, 0);
46         Date dob = cal.getTime();
47         return new DayDate(dob.getTime());
48     }
49
50     public static Date timeDifferenceDays(int days) {
51         Calendar c = Calendar.getInstance();
52         c.setTimeInMillis(System.currentTimeMillis());
53         c.add(Calendar.DAY_OF_MONTH, days);
54         return c.getTime();
55     }
56 }