package xin.glue.user.common; import java.util.*; import java.text.SimpleDateFormat; import java.text.DecimalFormat; /** * This Date related calculation utility will be used for * all date specific business logic. * * Scott Lee - add new method- convertToString() * @author Scott Lee (10/22/2000) */ public class EDateUtility { private static final int millisPerDay = 24 * 60 * 60 * 1000; private static final java.text.ParsePosition pos = new java.text.ParsePosition(0); private static final SimpleDateFormat dfDefaultlocale = new SimpleDateFormat(); // private static SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSSSSS"); // private static SimpleDateFormat dfDB2TimeStamp = new SimpleDateFormat("yyyy-MM-dd-kk.mm.ss.ms"); /** * EDateUtility constructor comment. */ public EDateUtility() { super(); } /** * add or subtract number of day/month/year from input date. * eg, add("02/02/2001", "2", "month") -> 04/02/2001 * eg, add("02/02/2001", "-2", "month") -> 12/02/2000 * notes : 'day, month, year' should be lower cases * Creation date: (10/22/2000 3:43:35 AM) * @return String express of date 'mm/dd/yyyy' * @param date_text java.lang.String * @param s_num java.lang.String - number in string * @param type java.lang.String - day , month or year */ public static String add(String date_text, String s_num, String type) { // format validation will be required GregorianCalendar calendar = parseCalendar(date_text); if (s_num.startsWith("+")) s_num = s_num.substring(1); calendar = addDateUnit(calendar, s_num, type.toLowerCase()); return toStringDate(calendar); } public static String add(java.sql.Timestamp timestamp, String s_num, String type) { // format validation will be required GregorianCalendar calendar = parseCalendar((Date)timestamp); if (type.indexOf("day") != -1) calendar.add(calendar.DATE, Integer.parseInt(s_num) ); else if (type.indexOf("month") != -1) calendar.add(calendar.MONTH, Integer.parseInt(s_num) ); else if (type.indexOf("year") != -1) calendar.add(calendar.YEAR, Integer.parseInt(s_num) ); return toStringMonthDate(calendar); } /** * convert numeric month into string * Creator: Scott Lee * Creation date: (8/20/2002 2:37:06 PM) * @return String - return 0 is failure * @param str java.lang.String */ /** * add or subtract number of day/month/year from input date. * eg, add("02/02/2001", "+2", "MONTH") -> 04/02/2000 * Creation date: (10/22/2000 3:43:35 AM) * @return String express of date 'mm/dd/yyyy' * @param date_text java.lang.String * @param s_num java.lang.String - number in string * @param type java.lang.String - day , month or year */ public static String addDateUnit(String date_text, String s_num, String type) { // format validation will be required GregorianCalendar calendar = parseCalendar(date_text); calendar = addDateUnit(calendar, s_num, type); return toJDBCStringDate(calendar); } /** * add or subtract number of day/month/year from input date. * eg, add(calendar, "+2", "MONTH") -> 04/02/2000 * Creation date: (10/22/2000 3:43:35 AM) * @creator Scott Lee (Jun5, 2002) * @return String express of date 'mm/dd/yyyy' * @param date Date * @param s_num java.lang.String - number in string * @param type java.lang.String - day , month or year */ public static GregorianCalendar addDateUnit(Date date, String s_num, String type) { // format validation will be required GregorianCalendar calendar = parseCalendar(date); if (type.indexOf("day") != -1) calendar.add(calendar.DATE, Integer.parseInt(s_num) ); else if (type.indexOf("month") != -1) calendar.add(calendar.MONTH, Integer.parseInt(s_num) ); else if (type.indexOf("year") != -1) calendar.add(calendar.YEAR, Integer.parseInt(s_num) ); return calendar; } /** * add or subtract number of day/month/year from input date. * eg, add(calendar, "+2", "MONTH") -> 04/02/2000 * Creation date: (10/22/2000 3:43:35 AM) * @creator Scott Lee (Jun5, 2002) * @return String express of date 'mm/dd/yyyy' * @param calendar GregorianCalendar * @param s_num java.lang.String - number in string * @param type java.lang.String - day , month or year */ public static GregorianCalendar addDateUnit(GregorianCalendar calendar, String s_num, String type) { // format validation will be required if (type.indexOf("day") != -1) calendar.add(calendar.DATE, Integer.parseInt(s_num) ); else if (type.indexOf("month") != -1) calendar.add(calendar.MONTH, Integer.parseInt(s_num) ); else if (type.indexOf("year") != -1) calendar.add(calendar.YEAR, Integer.parseInt(s_num) ); return calendar; } /** * compare two string dates * Creation date: (6/17/2001 9:06:30 PM) * @return boolean - true when left > right date * @param String left_date * @param String right_date */ public static boolean after(String left_date, String right_date) { GregorianCalendar c_left_date = parseCalendar(left_date); GregorianCalendar c_right_date = parseCalendar(right_date); return c_left_date.after(c_right_date); } /**and find later date. * Creation date: (10/22/2000 3:43:35 AM) * @return java.util.GregorianCalendar * @param date_text java.lang.String */ public static boolean after(String begin_date_text, Date enddate) { // format validation will be required GregorianCalendar calendarbegin = parseCalendar(begin_date_text); GregorianCalendar calendarend = parseCalendar(enddate); return calendarbegin.after(calendarend); } /** * compare the end date with begin date + / - number of date unit * Creation date: (10/22/2000 3:43:35 AM) * @return java.util.GregorianCalendar * @param date_text java.lang.String */ public static boolean after(String begin_date_text, Date enddate ,int field ,int amount) { // format validation will be required GregorianCalendar calendarbegin = parseCalendar(begin_date_text); calendarbegin.add(field, amount); GregorianCalendar calendarend = parseCalendar(enddate); return calendarbegin.after(calendarend); } /** * compare which date is later in string format * Creation date: (6/17/2001 10:39:58 PM) * @return boolean * @param left_date java.lang.String * @param right_date java.lang.String */ public static boolean after(Date begindate, String endDate) { // format validation will be required GregorianCalendar calendarBegin = parseCalendar(begindate); GregorianCalendar calendarEnd = parseCalendar(endDate); return calendarBegin.after(calendarEnd); } /** * Insert the method's description here. * Creation date: (10/22/2000 3:43:35 AM) * @return java.util.GregorianCalendar * @param date_text java.lang.String */ public static boolean after(Date begindate, String end_date_String ,int field ,int amount) { // format validation will be required GregorianCalendar calendarBegin = parseCalendar(begindate); calendarBegin.add(field,amount); GregorianCalendar calendarEnd = parseCalendar(end_date_String); return calendarBegin.after(calendarEnd); } /** * compare two string dates, A >= B date * Creation date: (6/17/2001 9:06:30 PM) * @return boolean - true when left > right date * @param String left_date * @param String right_date */ public static boolean afterEqual(String left_date, String right_date) { if (left_date.equals(right_date)) return true; GregorianCalendar c_left_date = parseCalendar(left_date); GregorianCalendar c_right_date = parseCalendar(right_date); return c_left_date.after(c_right_date); } /** * This method checks whether the input string date is greater than today * * Creation date: (10/22/2000 3:43:35 AM) * @return boolean - true if date_text > today + number, else return false * @param date_text java.lang.String - String express of date 'mm/dd/yyyy' */ public static boolean afterToday(String date_text) { return afterToday(date_text, "0", "day"); } /** * This method checks whether the input string date is greater than today + number of date expression * eg, add("02/02/2001", "+2", "MONTH") -> 04/02/2000 * * Creation date: (10/22/2000 3:43:35 AM) * @return boolean - true if date_text > today + number, else return false * @param date_text java.lang.String - String express of date 'mm/dd/yyyy' * @param s_num java.lang.String - number of days, months or years (why this isn't int? * because we can externalize this into rule later * @param type java.lang.String - indicate day or month or year type */ public static boolean afterToday(String date_text, String s_num, String type) { // format validation will be required GregorianCalendar compare_date = parseCalendar(date_text); // get current system date GregorianCalendar current_date = (GregorianCalendar)Calendar.getInstance(); if (type.indexOf("day") != -1) compare_date.add(current_date.DATE, Integer.parseInt(s_num) ); else if (type.indexOf("month") != -1) compare_date.add(current_date.MONTH, Integer.parseInt(s_num) ); else if (type.indexOf("year") != -1) compare_date.add(current_date.YEAR, Integer.parseInt(s_num) ); // else // invalid date type // throw new RuleParseException("invalid date type"); - future extend return compare_date.after(current_date); } /** * check whether the input string date is greater than today + number of date expression * eg, add("02/02/2001", "+2", "MONTH") -> 04/02/2000 * Creation date: (10/22/2000 3:43:35 AM) * @return boolean - true if date_text > today + number, else return false * @param date_text java.lang.String - String express of date * @param format java.lang.String - different date format * @param s_num java.lang.String - number of days, months or years (why this isn't int? * because we can externalize this into rule later * @param type java.lang.String - indicate day or month or year type */ public static boolean afterToday(String date_text, String s_num, String type, String format) { // format validation will be required GregorianCalendar compare_date = parseCalendar(date_text, format); // get current system date GregorianCalendar current_date = (GregorianCalendar)Calendar.getInstance(); if (type.indexOf("day") != -1) current_date.add(current_date.DATE, Integer.parseInt(s_num) ); else if (type.indexOf("month") != -1) current_date.add(current_date.MONTH, Integer.parseInt(s_num) ); else if (type.indexOf("year") != -1) current_date.add(current_date.YEAR, Integer.parseInt(s_num) ); // else // invalid date type // throw new RuleParseException("invalid date type"); - future extend return compare_date.after(current_date); } /** * This method checks whether the input string date is greater than yesterday * * Creation date: (10/22/2000 3:43:35 AM) * @return boolean - true if date_text > today + number, else return false * @param date_text java.lang.String - String express of date 'mm/dd/yyyy' */ public static boolean afterYesterday(String date_text) { return afterToday(date_text, "1", "day"); } /** * * This method check password expirationd date as of today. * if today is in window of warning, return true * mm/dd/yyyy *
* example)
* password create date - "07/02/2001" mm/dd/yyyy
* today - "08/01/2001"
* password expired term (defined in EdulinxConstants) - 30 days
* password warning period - 5
* sample code >
int result =
com.edulinx.util.EDateUtility.checkExpiry( "07/02/2001", 30, 5);
System.out.println("====> "+ result);
result will be 1 so display warning message
if result is 0, not yet expired and expired if 2.
* Creation date: (Jul 30 2000 3:53:48 AM) scott lee
* @update - bug fix in after today - scott aug 7, 2001
* @return int - 0: not yet, 1: expired soon, 2: expired
* @param start_date_text java.lang.String
* @param end_date_text java.lang.String
* @param expiry_term int
*/
public static int checkExpiry(String start_date_text, int expiry_term, int warning_term)
{
// GregorianCalendar today = new GregorianCalendar();
// if expiry date > today, return 2(expired already)
if (!afterToday( start_date_text, String.valueOf(expiry_term), "day"))
return 2;
// if expiry date > today > warning date, return 1(expired soon)
if (!afterToday( start_date_text, String.valueOf(expiry_term - warning_term), "day"))
return 1;
return 0;
}
/**
* convert Date into String by locale and date pattern
* Creation date: (Jul 5, 2002) -Scott Lee
* @return java.lang.String - date expression
* @param inDate Date
* @param pattern String - date pattern
* @param locale Locale
*/
public static String convertByLocale(
Date inDate,
String pattern,
Locale locale) {
SimpleDateFormat dateConverter = new SimpleDateFormat(pattern, locale);
return dateConverter.format(inDate);
}
/**
* change CYYMMDD or CCYYMMDD to MM/DD/YYYY format
* Creation date: (10/31/00 4:00:32 PM)
* @return java.lang.String
* @param inDate java.lang.String
*/
public static String convertToCSDate(String inDate)
{
String centry = "";
int centry_index = 1;
if (inDate.length() == 7)
{
centry = inDate.substring(0, centry_index);
if (centry.equals("0"))
centry = "19";
else
centry = "20";
}
else if (inDate.length() == 8)
{
centry_index = 2;
centry = inDate.substring(0, centry_index);
}
else if (inDate.equals(""))
{
return inDate;
}
else
{
return "-1"; // invalid date input
}
String year = inDate.substring(centry_index, centry_index + 2);
String month = inDate.substring(centry_index + 2, centry_index + 4);
String day = inDate.substring(centry_index + 4, centry_index + 6);
return month + "/" + day + "/" + centry + year;
}
/**
* This method will convert a date object to a DB2 date string.
* The date string can then be used to update a DB2 timestamp column.
* When updating a DB2 timestamp column with a date-string the format must
* be as follows:
*
* "yyyy-MM-dd-kk.mm.ss.ms"
*
* Creation date: (Sept 8, 2001)
* Author: Anthony Lum
* History:
*
*/
public static String convertToDB2TimeStampString(Object aDateObject) {
String aDateString = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSSSSS");
SimpleDateFormat dfDB2TimeStamp = new SimpleDateFormat("yyyy-MM-dd-kk.mm.ss.SSSSSS");
try {
java.util.Date aDate = df.parse( aDateObject.toString() );
aDateString = toDB2TimeStampString(aDate);
// aDateString = dfDB2TimeStamp.format( aDate );
} catch (java.text.ParseException pe) {
aDateString = "";
}
return aDateString;
}
/**
* convert mm/dd/yyyy to cyymmdd format
* Creation date: (10/31/00 4:16:53 PM)scott
* @return java.lang.String
* @param inDate java.lang.String
*/
public static String convertToMFDate(String inDate)
{
String month = inDate.substring(0,2);
String day = inDate.substring(3,5);
String centry = inDate.substring(6,8);
String year = inDate.substring(8,10);
if (centry.equals("20"))
centry = "1";
else
centry = "0";
return centry + year + month + day;
}
/**
* convert mm/dd/yyyy to cyymmdd format
* Creation date: (10/31/00 4:16:53 PM)scott
* @return java.lang.String
* @param inDate java.lang.String
*/
public static String convertToMFDate(String inDate, int sizeOfMFDate)
{
String month = inDate.substring(0,2);
String day = inDate.substring(3,5);
String centry = inDate.substring(6,8);
String year = inDate.substring(8,10);
if ( sizeOfMFDate == 7 )
{
if (centry.equals("20"))
centry = "1";
else
centry = "0";
}
return centry + year + month + day;
}
/**
* Convert 'MM/DD/YYYY' to 'MMDDYYYY' format
* Creation date: (07/19/02 11:31:02 AM)
* @return java.lang.String
* @param inDate java.lang.String
* created by Mary Hu , Jul.19,2002
*/
public static String convertToMFMMDDYYYY(String inDate) {
String month = inDate.substring(0,2);
String day = inDate.substring(3,5);
String year = inDate.substring(6,10);
return month + day + year;
}
/**
* Convert 'YYYY/MM/DD' to 'MM/DD/YYYY' format
* Creation date: (11/9/00 11:31:02 AM)
* @return java.lang.String
* @param inDate java.lang.String
* created by scott lee , Nov 9,00
*/
public static String convertToMMDDYYYY(String inDate) {
String month = inDate.substring(5,7);
String day = inDate.substring(8,10);
String year = inDate.substring(0,4);
return month + "/" + day + "/" + year;
}
/**
* convert String input for yyyy, mm, dd into SQL DAte
*
* Creation date: (Jun 6, 2002)
* Author:Scott Lee
* History:
* @param year int - 2002 ie.
* @param month int - 6 for Jun
* @param date int - 20 ie.
* @return java.sql.Date
*/
public static java.sql.Date convertToSQLDate(
int year, int month, int day) {
Calendar cal = Calendar.getInstance();
// set year, month and date.
cal.set(year, month-1, day);
// turn calendar into date, and this date into time
long time = cal.getTime().getTime();
// with the time, you can finally create your SQL date
java.sql.Date date = new java.sql.Date(time);
return date;
}
/**
* convert String input for mm/dd/yyyy into SQL DAte
*
* Creation date: (July 31, 2002)
* Author:Scott Lee
* History:
* @param year String - mm/dd/yyyy
* @return java.sql.Date
*/
public static java.sql.Date convertToSQLDate(
String date_text) {
String[] array = EDateUtility.convertToStringArray(date_text);
return EDateUtility.convertToSQLDate(array[0], array[1], array[2]);
}
/**
* convert String input for yyyy, mm, dd into SQL DAte
*
* Creation date: (Jun 6, 2002)
* Author:Scott Lee
* History:
* @param year String - 2002 ie.
* @param month String - 6 for Jun
* @param date String - 20 ie.
* @return java.sql.Date
*/
public static java.sql.Date convertToSQLDate(
String year,
String month,
String day) {
int d = Integer.parseInt(day);
int m = Integer.parseInt(month);
int y = Integer.parseInt(year);
return convertToSQLDate(y, m, d);
}
/**
* This method will convert a GregorianCalendar or Date object to a date string.
* if format is null, use
* "yyyy-MM-dd-kk.mm.ss.ms" as default
*
* Creation date: (Jun 6, 2002)
* Author: Scott Lee
* History:
* @param obj Object - GregorianCalendar or Date
* @param format String - format of date, "yyyy-MM-dd-kk.mm.ss.ms" as default
* @return String - 2000-01-02-00.00.00:000000 ie.
*/
public static String convertToString(Object obj, String format) {
Date date = null;
if (obj instanceof GregorianCalendar) {
Calendar cal = (Calendar) obj;
long time = cal.getTime().getTime();
// with the time, you can finally create your SQL date
date = new java.util.Date(time);
return convertToString(date, format);
} else if (obj instanceof Date)
return convertToString(date, format);
else
return ""; // invalid object for date format,, throw exception later
}
/**
* This method will convert a date object to string by input format
* * Default format is * "yyyy-MM-dd-kk.mm.ss.ms" * default date is 'today' if null. * ** Creation date: (Jun 7, 2002) * Author: Scott Lee * History: * */ public static String convertToString(Date date, String format) { // defualt format , if not specified if (format == null) format = "yyyy-MM-dd kk:mm:ss.SSSSSS"; // for DB2 if (date == null) date = new Date(); SimpleDateFormat df = new SimpleDateFormat(format); return df.format( date ); } /** * Convert 'MM/DD/YYYY' to String array of year, month, date * Creation date: (06/06/02 11:31:02 AM) * @return java.lang.String * @param inDate java.lang.String * created by scott lee , Nov 9,00 */ public static String[] convertToStringArray(String inDate) { if (inDate.indexOf('/') == 1) inDate = "0" + inDate; String month = inDate.substring(0,2); String date = inDate.substring(3,5); String year = inDate.substring(6,10); String[] array = {year, month, date}; return array; } /** * Convert 'MM/DD/YYYY' to YYYY/MM/DD format * Creation date: (11/9/00 11:31:02 AM) * @return java.lang.String * @param inDate java.lang.String * created by scott lee , Nov 9,00 */ public static String convertToYYYYMMDD(String inDate) { String month = inDate.substring(0,2); String day = inDate.substring(3,5); String year = inDate.substring(6,10); return year + "/" + month + "/" + day; } /** * convert double to String * Creation date: (10/31/00 4:16:53 PM)scott * @return java.lang.String * @param value double * @param pattern String */ static public String formatCurrency(double value, String pattern) { DecimalFormat formatter = new DecimalFormat(pattern); return formatter.format(value); } /** * convert double to String * Creation date: (10/31/00 4:16:53 PM)scott * @return java.lang.String * @param value Double * @param pattern String */ static public String formatCurrency(Double value, String pattern) { return formatCurrency(value.doubleValue(), pattern); } /** * format Date into String as per input format type *
** Creation date: (04/17/2002 10:33:00 AM) * @author: Scott Lee * @return java.lang.String * @param date java.util.Date * @param format String */ public static String formatDate(Date date, String format) { if (date == null) { return null; } else { SimpleDateFormat formatter = new SimpleDateFormat(format); return formatter.format(date); } } /** * To get the end date of the current month. *
* History * --------------------------------------------------------- * Mary Hu Creation date: (07/18/2002 10:16:32 AM) ** @author: Mary Hu * @return java.util.Date */ public static Date getCurrentMonthEndDate() { Date currentDate= new Date(); Calendar calendar= Calendar.getInstance(); calendar.setTime(currentDate); calendar.add(Calendar.MONTH, 1); calendar.set(Calendar.DATE,1); calendar.add(Calendar.DATE,-1); return calendar.getTime(); } /** * calculate number of days between a date and today. Input date is * string format in this case * Creation date: (10/22/2000 3:28:42 AM)scott * * @return int * @param end_date java.lang.String ("MM/DD/YYYY") * @param expiry_term int */ public static int getDuration(String end_date_text) { // format validation will be required GregorianCalendar start_date = (GregorianCalendar)Calendar.getInstance(); GregorianCalendar end_date = parseCalendar(end_date_text); return getDuration(start_date, end_date); } /** * calculate number of days between two dates. Input date is * string format in this case * Creation date: (10/22/2000 3:28:42 AM)scott * * @return int * @param start_date java.lang.String ("MM/DD/YYYY") * @param end_date java.lang.String ("MM/DD/YYYY") * @param expiry_term int */ public static int getDuration(String start_date_text, String end_date_text) { // format validation will be required GregorianCalendar start_date = parseCalendar(start_date_text); GregorianCalendar end_date = parseCalendar(end_date_text); return getDuration(start_date, end_date); } /** * calculate number of days between two dates. Input date is * string format in this case * Creation date: (10/22/2000 3:28:42 AM)scott * * @return int * @param start_date java.lang.String ("MM/DD/YYYY") * @param end_date java.util.Date format ("MM/DD/YYYY") * @param expiry_term int */ public static int getDuration(String start_date_text, Date enddate) { // format validation will be required GregorianCalendar start_date = parseCalendar(start_date_text); GregorianCalendar end_date = parseCalendar(enddate); return getDuration(start_date, end_date); } /** * calculate number of days between a date and today. Input date is * string format in this case * Creation date: (10/22/2000 3:28:42 AM)scott * * @return int * @param end_date java.lang.String ("MM/DD/YYYY") * @param expiry_term int */ public static int getDuration(GregorianCalendar end_date) { // format validation will be required GregorianCalendar start_date = (GregorianCalendar)Calendar.getInstance(); return getDuration(start_date, end_date); } /** * calculate number of days between two dates. * Creation date: (10/22/2000 2:29:49 AM)scott * @return int */ public static int getDuration(GregorianCalendar start_date, GregorianCalendar end_date) { long duration = ((end_date.getTime().getTime() - start_date.getTime().getTime()) / millisPerDay); Long ndays = new Long(duration); return ndays.intValue(); } /** * return end date from start date with expiry term * Creation date: (11/14/2000 2:28:55 AM)scott * @return boolean */ public static GregorianCalendar getEndDate(String start_date_text, int expiry_term) { GregorianCalendar start_date = parseCalendar(start_date_text); int dd = start_date.get(start_date.DATE); int mm = start_date.get(start_date.MONTH); int yy = start_date.get(start_date.YEAR); GregorianCalendar expiry_date = new GregorianCalendar(yy, mm, dd ); expiry_date.add(expiry_date.DATE, expiry_term); // System.out.println("changed expiry_date => " + (expiry_date.get(expiry_date.MONTH) + 1) + "/" + expiry_date.get(expiry_date.DATE) + "/" + expiry_date.get(expiry_date.YEAR) ); // System.out.println("after adding term, start date => " + (start_date.get(start_date.MONTH) + 1) + "/" + start_date.get(start_date.DATE) + "/" + start_date.get(start_date.YEAR) ); return expiry_date; } /** * return end date from start date with expiry term * Creation date: (11/14/2000 2:28:55 AM)scott * @return boolean */ public static GregorianCalendar getEndDate(GregorianCalendar start_date, int expiry_term) { int dd = start_date.get(start_date.DATE); int mm = start_date.get(start_date.MONTH); int yy = start_date.get(start_date.YEAR); GregorianCalendar expiry_date = new GregorianCalendar(yy, mm, dd ); expiry_date.add(expiry_date.DATE, expiry_term); // System.out.println("changed expiry_date => " + (expiry_date.get(expiry_date.MONTH) + 1) + "/" + expiry_date.get(expiry_date.DATE) + "/" + expiry_date.get(expiry_date.YEAR) ); // System.out.println("after adding term, start date => " + (start_date.get(start_date.MONTH) + 1) + "/" + start_date.get(start_date.DATE) + "/" + start_date.get(start_date.YEAR) ); return expiry_date; } /** * convert string month into numeric * Creator: Scott Lee * Creation date: (8/20/2002 2:37:06 PM) * @return String * @param str java.lang.String */ public static String getNumericMonth(String str) { if (str.equalsIgnoreCase("Jan")) return "01"; else if (str.equalsIgnoreCase("Feb")) return "02"; else if (str.equalsIgnoreCase("Mar")) return "03"; else if (str.equalsIgnoreCase("Apr")) return "04"; else if (str.equalsIgnoreCase("May")) return "05"; else if (str.equalsIgnoreCase("Jun")) return "06"; else if (str.equalsIgnoreCase("Jul")) return "07"; else if (str.equalsIgnoreCase("Aug")) return "08"; else if (str.equalsIgnoreCase("Sep")) return "09"; else if (str.equalsIgnoreCase("Oct")) return "10"; else if (str.equalsIgnoreCase("Nov")) return "11"; else if (str.equalsIgnoreCase("Dec")) return "12"; return "0"; } /** * add or subtract number of day/month/year from input date. * eg, add(Timestamp, "+2", "MONTH") -> 04/02/2000 * Creation date: (09/09/2002 3:43:35 AM) * @creator Scott Lee (Jun5, 2002) * @return String express of date 'MMM dd, yyyy' * @param date Date * @param s_num java.lang.String - number in string * @param type java.lang.String - day , month or year */ public static String getStringMonth(String str) { if (str.equalsIgnoreCase("01")) return "Jan"; else if (str.equalsIgnoreCase("02")) return "Feb"; else if (str.equalsIgnoreCase("03")) return "Mar"; else if (str.equalsIgnoreCase("04")) return "Apr"; else if (str.equalsIgnoreCase("05")) return "May"; else if (str.equalsIgnoreCase("06")) return "Jun"; else if (str.equalsIgnoreCase("07")) return "Jul"; else if (str.equalsIgnoreCase("08")) return "Aug"; else if (str.equalsIgnoreCase("09")) return "Sep"; else if (str.equalsIgnoreCase("10")) return "Oct"; else if (str.equalsIgnoreCase("11")) return "Nov"; else if (str.equalsIgnoreCase("12")) return "Dec"; return "0"; } /** * 200208 => Aug-02 * Creator: Scott Lee * Creation date: (9/6/2002 4:29:57 PM) * @return java.lang.String * @param str java.lang.String */ /** * * This method check password expirationd date as of today. * if today is in window of warning, return true * mm/dd/yyyy *
* example)
* password create date - "07/02/2001" mm/dd/yyyy
* today - "08/01/2001"
* password expired term (defined in EdulinxConstants) - 30 days
* password warning period - 5
* sample code >
boolean result =
com.edulinx.util.EDateUtility.isExpiredSoon( "07/02/2001", 30, 5);
System.out.println("====> "+ result);
result will be 'true' so display warning message
* Creation date: (Jul 30 2000 3:53:48 AM) scott lee
* @return boolean
* @param start_date_text java.lang.String
* @param end_date_text java.lang.String
* @param expiry_term int
*/
public static boolean isExpiredSoon(String start_date_text, int expiry_term, int warning_term)
{
GregorianCalendar today = new GregorianCalendar();
// if today < warning date, return true
if (afterToday( start_date_text, String.valueOf(expiry_term - warning_term), "day"))
return false;
return true;
}
/**
* This method is used to determine if the input date is long ago from today by expiry term
*
* * usage : input date - 07/09/2001 and today is 08/20/2001. * if expiry term is 30 days, is the input date is longer than 30 days ago from today? yes * input_date + expiry < today ? ** Creation date: (Aug 20 2001)scott * @return boolean * @param inputDate java.util.Date * @param expiry_term int */ public static boolean isLongAgo(Date inputDate, int expiry_term) { // format validation will be required GregorianCalendar input_date = parseCalendar(inputDate); GregorianCalendar today = new GregorianCalendar(); // input date + 30 days < today, eg. return isWithinTerm( input_date, today, expiry_term); } /** * Check if specific date + warning term after expiry date * Case 1 - There are fixed start date and variable end date * For example, to see if your IR is almost near end with 30 days * *
usage *In IR application, client can apply new IR if current IR will be ended soon or within 31 days from today *ie, Today = May 2, 2002 * IR end day = May 30, 2002 * then this client can apply new IR because existing IR period is less than 1 month or 31 days. * In your code, write like this, * EDateUtility.isNearEnd(today, endday, 31) * it this returns true, it means this IR is near to end and welcome new IR application, prequalify,,, * ** * Creation date: Scott Lee (10/22/2000 2:28:55 AM) * @return boolean */ public static boolean isNearEnd(Date startdate, Date enddate, int expiry_term) { GregorianCalendar start_date = parseCalendar(startdate); GregorianCalendar end_date = parseCalendar(enddate); return isNearEnd(start_date, end_date, expiry_term); } /** * Check if specific date + warning term after expiry date * Case 1 - There are fixed start date and variable end date For example, to see if your IR is almost near end with 30 days *
usage In IR application, client can apply new IR if current IR will be ended soon or within 31 days from today ie, Today = May 2, 2002 IR end day = May 30, 2002 then this client can apply new IR because existing IR period is less than 1 month or 31 days. In your code, write like this, EDateUtility.isNearEnd(today, endday, 31) it this returns true, it means this IR is near to end and welcome new IR application, prequalify,,,* Creation date: Scott Lee (10/22/2000 2:28:55 AM)scott * @return boolean */ public static boolean isNearEnd(GregorianCalendar start_date, GregorianCalendar end_date, int expiry_term) { int dd = start_date.get(start_date.DATE); int mm = start_date.get(start_date.MONTH); int yy = start_date.get(start_date.YEAR); GregorianCalendar expiry_date = new GregorianCalendar(yy, mm, dd ); expiry_date.add(expiry_date.DATE, expiry_term); //return end_date.after(expiry_date); return expiry_date.after(end_date); } /** * validate date format * Creation date: (10/31/00 4:00:32 PM) scott * @return java.lang.String * @param inDate java.lang.String */ public static boolean isValidDateFormat(String inDate, String format) { Date outDate = null; try { format = format.toLowerCase(); int indexOfMonth = format.indexOf('m'); System.out.println(" Scott : index -> " + indexOfMonth); int lastIndexOfMonth = format.indexOf('/'); System.out.println(" Scott : index -> " + lastIndexOfMonth); String month_text = inDate.substring(indexOfMonth, lastIndexOfMonth); int month = Integer.valueOf(month_text).intValue(); System.out.println(" Scott : month -> " + month); SimpleDateFormat formatter = new SimpleDateFormat(format); outDate = formatter.parse(inDate); }catch(Exception e) { return false; // throw new InvalidAttributeValueException(AmsConstants.INVALID_DATE_ATTRIBUTE); } return true; } /** * Check specific date is next month from today *
* for example, today = 08/09/2001 and examing date = 09/02/2001 * today + 1 month = 09/09/2001. Therefore examing date is withinNextMonth. * This comparison method does not care about the date. It only compares month. * If you enter '09/13/2001' as examing date, still this date is within next month. ** default format yyyymmdd * Creation date: (11/13/2000 3:53:48 AM)scott * @return boolean - true if within next month * @param date_text java.lang.String - input date */ public static boolean isWithinNextMonth(String date_text) { GregorianCalendar today = new GregorianCalendar(); today.add(today.MONTH, 1); int next_month = today.get(today.MONTH); int today_year = today.get(today.YEAR); // format validation will be required GregorianCalendar date = parseCalendar(date_text, "yyyymmdd"); // change later for dynamic format int input_month = date.get(date.MONTH); int input_year = date.get(date.YEAR); if ((input_year <= today_year) && (input_month <= next_month)) return true; return false; } /** * Check specific date is next month from today *
* for example, today = 08/09/2001 and examing date = 09/02/2001 * today + 1 month = 09/09/2001. Therefore examing date is withinNextMonth. * This comparison method does not care about the date. It only compares month. * If you enter '09/13/2001' as examing date, still this date is within next month. ** Data format can be any (eg,yyyymmdd or mm/dd/yyyy) * Creation date: (Aug 9 2001 3:53:48 AM) Scott Lee * @return boolean - true if within next month * @param date_text java.lang.String - input date * @param date_format java.lang.String - date format (eg,yyyymmdd or mm/dd/yyyy) */ public static boolean isWithinNextMonth(String date_text, String date_format) { GregorianCalendar today = new GregorianCalendar(); today.add(today.MONTH, 1); int next_month = today.get(today.MONTH); int today_year = today.get(today.YEAR); // format validation will be required GregorianCalendar date = parseCalendar(date_text, date_format); // change later for dynamic format int input_month = date.get(date.MONTH); int input_year = date.get(date.YEAR); if ((input_year <= today_year) && (input_month <= next_month)) return true; return false; } /** * Check specific date is next month from today *
* for example, today = 08/09/2001 and examing date = 09/02/2001 * today + 1 month = 09/09/2001. Therefore examing date is withinNextMonth. * This comparison method does not care about the date. It only compares month. * If you enter '09/13/2001' as examing date, still this date is within next month. ** default format : Date * @Creation date: (Aug 9 2001 3:43:35 AM) Scott Lee * @return boolean - true if within next month * @param inputDate Date - input date */ public static boolean isWithinNextMonth(Date inputDate) { GregorianCalendar today = new GregorianCalendar(); today.add(today.MONTH, 1); int next_month = today.get(today.MONTH); int today_year = today.get(today.YEAR); // format validation will be required GregorianCalendar date = parseCalendar(inputDate); int input_month = date.get(date.MONTH); int input_year = date.get(date.YEAR); if ((input_year <= today_year) && (input_month <= next_month)) return true; return false; } /** * Check specific date is next month from today *
* for example, today = 08/09/2001 and examing date = 09/02/2001 * today + 1 month = 09/09/2001. Therefore examing date is withinNextMonth. * This comparison method does not care about the date. It only compares month. * If you enter '09/13/2001' as examing date, still this date is within next month. ** default format : Date * @Creation date: (Aug 9 2001 3:43:35 AM) Scott Lee * @return boolean - true if within next month * @param date GregorianCalendar - input date */ public static boolean isWithinNextMonth(GregorianCalendar date) { GregorianCalendar today = new GregorianCalendar(); today.add(today.MONTH, 1); int next_month = today.get(today.MONTH); int today_year = today.get(today.YEAR); // format validation will be required int input_month = date.get(date.MONTH); int input_year = date.get(date.YEAR); if ((input_year <= today_year) && (input_month <= next_month)) return true; return false; } /** * Check specific date is before expiry date, input in string format, this method uses today as default end date * mm/dd/yyyy * Case 1 - There are fixed start date and variable end date For example, you borrowed a video tape with 5 day rental term. isWithinTerm() method returns true only you passed the due date. This is not lovely name ,,,anyway.. *
usage if start date is 10/01/2001 and expiry term is 5, end date 10/04/2001--> false => within due date 10/05/2001--> false => within due date 10/06/2001--> false => within due date 10/07/2001--> true => due date is over ===================== Case 2 - There are variable start date and fixed end date For example, you can not apply new IR application if still too many days left until existing IR end date if end date date is 10/06/2001 and expiry term is 5, start date 09/30/2001 --> true => too early to apply 10/01/2001--> false => eligible 10/02/2001--> false => eligible 10/03/2001--> false => eligible* Creation date: (11/13/2000 3:53:48 AM)scott * @return boolean * @param start_date_text java.lang.String * @param end_date_text java.lang.String * @param expiry_term int */ public static boolean isWithinTerm(String start_date_text, int expiry_term) { GregorianCalendar today = new GregorianCalendar(); String enddate = (today.get(today.MONTH) + 1) + "/" + today.get(today.DATE) + "/" + today.get(today.YEAR); // format validation will be required GregorianCalendar start_date = parseCalendar(start_date_text); GregorianCalendar end_date = parseCalendar(enddate); return isWithinTerm(start_date, end_date, expiry_term); } /** * Check specific date is before expiry date, input in string format * mm/dd/yyyy * Case 1 - There are fixed start date and variable end date For example, you borrowed a video tape with 5 day rental term. isWithinTerm() method returns true only you passed the due date. This is not lovely name ,,,anyway.. *
usage if start date is 10/01/2001 and expiry term is 5, end date 10/04/2001--> false => within due date 10/05/2001--> false => within due date 10/06/2001--> false => within due date 10/07/2001--> true => due date is over ===================== Case 2 - There are variable start date and fixed end date For example, you can not apply new IR application if still too many days left until existing IR end date if end date date is 10/06/2001 and expiry term is 5, start date 09/30/2001 --> true => too early to apply 10/01/2001--> false => eligible 10/02/2001--> false => eligible 10/03/2001--> false => eligible* formula - (start_date + expiry_term < end_date) * Creation date: (10/22/2000 3:53:48 AM)scott * @return boolean * @param start_date_text java.lang.String * @param end_date_text java.lang.String * @param expiry_term int */ public static boolean isWithinTerm(String start_date_text, String end_date_text, int expiry_term) { // format validation will be required GregorianCalendar start_date = parseCalendar(start_date_text); GregorianCalendar end_date = parseCalendar(end_date_text); // if start + 30 days < end date return isWithinTerm(start_date, end_date, expiry_term); } /** * Check specific date is before expiry date, input in string format * mm/dd/yyyy * Case 1 - There are fixed start date and variable end date For example, you borrowed a video tape with 5 day rental term. isWithinTerm() method returns true only you passed the due date. This is not lovely name ,,,anyway.. *
usage if start date is 10/01/2001 and expiry term is 5, end date 10/04/2001--> false => within due date 10/05/2001--> false => within due date 10/06/2001--> false => within due date 10/07/2001--> true => due date is over ===================== Case 2 - There are variable start date and fixed end date For example, you can not apply new IR application if still too many days left until existing IR end date if end date date is 10/06/2001 and expiry term is 5, start date 09/30/2001 --> true => too early to apply 10/01/2001--> false => eligible 10/02/2001--> false => eligible 10/03/2001--> false => eligible* Creation date: (10/22/2000 3:53:48 AM)scott * @return boolean * @param start_date_text java.lang.String * @param end_date_text java.lang.String * @param expiry_term int */ public static boolean isWithinTerm(String start_date_text, Date enddate, int expiry_term) { // format validation will be required GregorianCalendar start_date = parseCalendar(start_date_text); GregorianCalendar end_date = parseCalendar(enddate); return isWithinTerm(start_date, end_date, expiry_term); } /** * Check specific date is before expiry date, input in string format, this method uses today as default end date * mm/dd/yyyy *
* usage : input date - 09/09/2001 and today is 08/20/2001. * if expiry term is 30 days from today, is the input date within term? yes. * input_date + expiry < today ? ** Case 1 - There are fixed start date and variable end date For example, you borrowed a video tape with 5 day rental term. isWithinTerm() method returns true only you passed the due date. This is not lovely name ,,,anyway.. *
usage if start date is 10/01/2001 and expiry term is 5, end date 10/04/2001--> false => within due date 10/05/2001--> false => within due date 10/06/2001--> false => within due date 10/07/2001--> true => due date is over ===================== Case 2 - There are variable start date and fixed end date For example, you can not apply new IR application if still too many days left until existing IR end date if end date date is 10/06/2001 and expiry term is 5, start date 09/30/2001 --> true => too early to apply 10/01/2001--> false => eligible 10/02/2001--> false => eligible 10/03/2001--> false => eligible* Creation date: (11/13/2000 3:53:48 AM)scott * @return boolean * @param start_date_text java.lang.String * @param end_date_text java.lang.String * @param expiry_term int */ public static boolean isWithinTerm(Date inputDate, int expiry_term) { // format validation will be required GregorianCalendar input_date = parseCalendar(inputDate); GregorianCalendar today = new GregorianCalendar(); return isWithinTerm(input_date, today, expiry_term); } /** * Check specific date is before expiry date, input in string format * mm/dd/yyyy * Case 1 - There are fixed start date and variable end date For example, you borrowed a video tape with 5 day rental term. isWithinTerm() method returns true only you passed the due date. This is not lovely name ,,,anyway.. *
usage if start date is 10/01/2001 and expiry term is 5, end date 10/04/2001--> false => within due date 10/05/2001--> false => within due date 10/06/2001--> false => within due date 10/07/2001--> true => due date is over ===================== Case 2 - There are variable start date and fixed end date For example, you can not apply new IR application if still too many days left until existing IR end date if end date date is 10/06/2001 and expiry term is 5, start date 09/30/2001 --> true => too early to apply 10/01/2001--> false => eligible 10/02/2001--> false => eligible 10/03/2001--> false => eligible* Creation date: (10/22/2000 3:53:48 AM)scott * @return boolean * @param start_date Date * @param end_date Date * @param expiry_term int */ public static boolean isWithinTerm(Date startdate, Date enddate, int expiry_term) { // format validation will be required GregorianCalendar start_date = parseCalendar(startdate); GregorianCalendar end_date = parseCalendar(enddate); return isWithinTerm(start_date, end_date, expiry_term); } /** * Check specific date is before expiry date * Case 1 - There are fixed start date and variable end date For example, you borrowed a video tape with 5 day rental term. isWithinTerm() method returns true only you passed the due date. This is not lovely name ,,,anyway.. *
usage if start date is 10/01/2001 and expiry term is 5, end date 10/04/2001--> false => within due date 10/05/2001--> false => within due date 10/06/2001--> false => within due date 10/07/2001--> true => due date is over ===================== Case 2 - There are variable start date and fixed end date For example, you can not apply new IR application if still too many days left until existing IR end date if end date date is 10/06/2001 and expiry term is 5, start date 09/30/2001 --> true => too early to apply 10/01/2001--> false => eligible 10/02/2001--> false => eligible 10/03/2001--> false => eligible* Creation date: (10/22/2000 2:28:55 AM)scott * @return boolean */ public static boolean isWithinTerm(GregorianCalendar start_date, GregorianCalendar end_date, int expiry_term) { int dd = start_date.get(start_date.DATE); int mm = start_date.get(start_date.MONTH); int yy = start_date.get(start_date.YEAR); GregorianCalendar expiry_date = new GregorianCalendar(yy, mm, dd ); expiry_date.add(expiry_date.DATE, expiry_term); return end_date.after(expiry_date); } /** * convert String expression date to GregorianCalendar object * Creation date: (10/22/2000 3:43:35 AM) * History * ---------------------------------------------------------- * Scott (Jul 19, 2002) - fixed bug * * @return java.util.GregorianCalendar * @param date_text java.lang.String - mm/dd/yyyy format */ public static GregorianCalendar parseCalendar(String date_text) { // format validation will be required if (date_text.indexOf('/') == 1) date_text = "0" + date_text; String mm = date_text.substring(0,2); String dd = date_text.substring(3,5); String yy = date_text.substring(6,10); int month = Integer.valueOf(mm).intValue(); int day = Integer.valueOf(dd).intValue(); int year = Integer.valueOf(yy).intValue(); GregorianCalendar gCalendar = new GregorianCalendar(year, month-1, day); return gCalendar; } /** * convert String expression date to GregorianCalendar object * Creation date: (Aug 9 2001 3:43:35 AM) Scott Lee * History * ---------------------------------------------------------- * Scott (Jul 19, 2002) - fixed bug * * @return java.util.GregorianCalendar * @param date_text java.lang.String - yyyymmdd format or mm/dd/yyyy - in future will be changed for dynamic format * @param data_format java.lang.String - yyyymmdd format or mm/dd/yyyy - in future will be changed for dynamic format */ public static GregorianCalendar parseCalendar(String date_text, String date_format) { if (date_format.equals("mm/dd/yyyy")) return parseCalendar(date_text); if (date_format.equals("yyyymmdd")) // format validation will be required { String mm = date_text.substring(4,6); String dd = date_text.substring(6,8); String yy = date_text.substring(0,4); int month = Integer.valueOf(mm).intValue(); int day = Integer.valueOf(dd).intValue(); int year = Integer.valueOf(yy).intValue(); GregorianCalendar gCalendar = new GregorianCalendar(year, month, day); return gCalendar; } return null; // can not handle any other format,,, enhance later for dynamic format..scottAug 9,2001 } /** * parse Date to GregorianCalendar * Creation date: (10/22/2000 3:43:35 AM) Scott Lee * @return java.util.GregorianCalendar, * @param date_text java.lang.String */ public static GregorianCalendar parseCalendar(Date date) { GregorianCalendar gCalendar = new GregorianCalendar(); gCalendar.setTime(date); return gCalendar; } /** * convert String expression date (MM/dd/yyyy) to Date object * Creation date: (10/22/2000 3:43:35 AM) * History * ---------------------------------------------------------------- * Scott (07/19/2002) - Update the year, month logic, please use com.edulinx.base.util.EDateUtility from now, * * @return java.util.GregorianCalendar * @param date_text java.lang.String - MM/dd/yyyy format * @deprecated As of Corporate EDateUtility */ public static Date parseDate(String date_text) { // format validation will be required String mm = date_text.substring(0,2); String dd = date_text.substring(3,5); String yy = date_text.substring(6,10); int month = Integer.valueOf(mm).intValue(); int day = Integer.valueOf(dd).intValue(); int year = Integer.valueOf(yy).intValue(); return new Date(year-1900, month-1, day); } /** * parse Date to GregorianCalendar * Creation date: (10/22/2000 3:43:35 AM) Scott Lee * History * ----------------------------------------------------------- * Scott (Jul 19, 2002) - fixed bug * @return java.util.GregorianCalendar, * @param date_text java.lang.String */ public static Date parseDate(GregorianCalendar calendar) { int y = calendar.get(java.util.Calendar.YEAR); int m = calendar.get(java.util.Calendar.MONTH); int d = calendar.get(java.util.Calendar.DAY_OF_MONTH); int h = calendar.get(java.util.Calendar.HOUR_OF_DAY); int mi = calendar.get(java.util.Calendar.MINUTE); int s = calendar.get(java.util.Calendar.SECOND); return new Date(y-1900, m, d, h, mi, s); } /** * * This method convert GregorianCalendar to String expression('YYYY-MM-DD-HH.MM.SS.SSSSSS') * @creation date: (Jul 30 2000 3:53:48 AM) scott lee * @return String (YYYY-mm-DD-HH.MM.SS.SSSSSS) - date of today in string * @param Date date */ public static String toDB2TimeStampString(Object obj) { Date _date = (Date)obj; // first convert the date to GregorianCalendar GregorianCalendar date = parseCalendar(_date); int dd = date.get(date.DATE); int mm = date.get(date.MONTH)+1; int yy = date.get(date.YEAR); int kk = date.get(date.HOUR_OF_DAY); int mi = date.get(date.MINUTE); int ss = date.get(date.SECOND); int ms = date.get(date.MILLISECOND); // pad 0 in front of single digit to be 01/01/2000 format String day0="", month0="", kk0="", mi0="", ss0="", ms0=""; if (dd < 10) day0 = "0"; if (mm < 10) month0 = "0"; if (kk < 10) kk0 = "0"; if (mi < 10) mi0 = "0"; if (ss < 10) ss0 = "0"; if (ms < 10) ms0 = "00000"; else if (ms < 100) ms0 = "0000"; else if (ms < 1000) ms0 = "000"; else if (ms < 10000) ms0 = "00"; else if (ms < 100000) ms0 = "0"; return String.valueOf(yy) + "-" + month0 + String.valueOf(mm) + "-" + day0 + String.valueOf(dd) + "-" + kk0 + String.valueOf(kk) + "." + mi0 + String.valueOf(mi) + "." + ss0 + String.valueOf(ss) + "." + ms0 + String.valueOf(ms); } /** * * This method convert GregorianCalendar to String expression('mm/dd/yyyy') * @creation date: (Jul 30 2000 3:53:48 AM) scott lee * @return String (mm//dd/yyyy) - date of today in string * @param GregorianCalendar date */ public static String toJDBCStringDate(GregorianCalendar date) { int dd = date.get(date.DATE); int mm = date.get(date.MONTH)+1; int yy = date.get(date.YEAR); // pad 0 in front of single digit to be 01/01/2000 format String day0="", month0=""; if (dd < 10) day0 = "0"; if (mm < 10) month0 = "0"; return String.valueOf(yy) + "-" + month0 + String.valueOf(mm) + "-" + day0 + String.valueOf(dd); } public static String toMonthYear(String str) { String year = str.substring(0, 4); String month = str.substring(4); // get previous month String s_month = getStringMonth(month); return s_month + "-" + year.substring(2); } /** * Sep-02 -> 200209 * Creator: Scott Lee * Creation date: (9/16/2002 11:56:53 AM) * @return java.lang.String * @param str java.lang.String */ public static String toNumberMonthYear(String str) { String month = str.substring(0,3); String year = str.substring(4); int i_year = Integer.parseInt(year); int centry = 20; if (i_year > 70) centry = 19; return centry + year + EDateUtility.getNumericMonth(month); } /** * * This method convert GregorianCalendar to String expression('May 10, 2002') * @creation date: (Jul 30 2000 3:53:48 AM) scott lee * @return String (mm//dd/yyyy) - date of today in string * @param GregorianCalendar date */ /** * * This method convert GregorianCalendar to String expression('mm/dd/yyyy') * @creation date: (Jul 30 2000 3:53:48 AM) scott lee * @return String (mm//dd/yyyy) - date of today in string * @param GregorianCalendar date */ public static String toStringDate(GregorianCalendar date) { int dd = date.get(date.DATE); int mm = date.get(date.MONTH)+1; int yy = date.get(date.YEAR); // pad 0 in front of single digit to be 01/01/2000 format String day0="", month0=""; if (dd < 10) day0 = "0"; if (mm < 10) month0 = "0"; return month0 + String.valueOf(mm) + "/" + day0 + String.valueOf(dd) + "/" + String.valueOf(yy); } /** * * This method convert GregorianCalendar to String expression('mm/dd/yyyy') * @creation date: (Jul 30 2000 3:53:48 AM) scott lee * @return String (mm//dd/yyyy) - date of today in string * @param GregorianCalendar date */ public static String toStringDateTime(GregorianCalendar date) { int dd = date.get(date.DATE); int mm = date.get(date.MONTH)+1; int yy = date.get(date.YEAR); int hh = date.get(date.HOUR); int mi = date.get(date.MINUTE); int ss = date.get(date.SECOND); int ms = date.get(date.MILLISECOND); // pad 0 in front of single digit to be 01/01/2000 format String day0="", month0=""; if (dd < 10) day0 = "0"; if (mm < 10) month0 = "0"; return month0 + String.valueOf(mm) + "/" + day0 + String.valueOf(dd) + "/" + String.valueOf(yy) + " " + hh + ":" + mi + ":" + ss + ":" + ms ; } public static String toStringMonthDate(GregorianCalendar date) { int dd = date.get(date.DATE); int mm = date.get(date.MONTH)+1; int yy = date.get(date.YEAR); // pad 0 in front of single digit to be 01/01/2000 format String day0="", month0=""; if (mm < 10) month0 = "0"; return getStringMonth(month0 + String.valueOf(mm)) + " " + day0 + String.valueOf(dd) + ", " + String.valueOf(yy); } /** * * This method convert today GregorianCalendar to String expression('mm/dd/yyyy') * @creation date: (Aug 2 2001 3:53:48 AM) scott lee * @return String (mm//dd/yyyy) - date of today in string * */ public static String toStringToday() { // get current system date GregorianCalendar date = (GregorianCalendar)Calendar.getInstance(); // convert to string return toStringDate(date); } /** * * This method convert today GregorianCalendar to String expression('mm/dd/yyyy') * @creation date: (Aug 2 2001 3:53:48 AM) scott lee * @return String (mm//dd/yyyy) - date of today in string * */ public static String toStringTodayTime() { // get current system date GregorianCalendar date = (GregorianCalendar)Calendar.getInstance(); // convert to string return toStringDateTime(date); } /** * compare which date is later in string format * left - mar 1 2003 , right - mar 2 2003 then result is false * Creation date: (6/17/2001 10:39:58 PM) * @return boolean * @param left_date java.lang.String * @param right_date java.lang.String */ public static boolean after(Date left_date, Date right_date) { // format validation will be required GregorianCalendar calendarBegin = parseCalendar(left_date); GregorianCalendar calendarEnd = parseCalendar(right_date); return calendarBegin.after(calendarEnd); } /** * format Date into String as per input format type *
** Creation date: (04/17/2002 10:33:00 AM) * @author: Scott Lee * @return java.lang.String * @param date java.util.Date * @param format String */ public static String formatCalendar(GregorianCalendar date, String format) { if (date == null) { return null; } else { Date _date = parseDate(date); SimpleDateFormat formatter = new SimpleDateFormat(format); return formatter.format(_date); } } /** * * This method converts today Date to given format( ie. 'mm/dd/yyyy') * @creation date: (Aug 2 2001 3:53:48 AM) scott lee * @return String (mm//dd/yyyy) - date of today in string * */ public static String toStringToday(String format) { // get current system date Date today = new Date(); // convert to string return formatDate(today, format); } /** * * This method converts today Date to java.sql.Timestamp * @creation date: (Aug 2 2001 3:53:48 AM) scott lee * @return java.sql.Timestamp * */ public static java.sql.Timestamp toSQLTimestampToday() { java.util.Date today = new java.util.Date(); return new java.sql.Timestamp(today.getTime()); } /** * * This method converts today Date to java.sql.Date * @creation date: (Aug 2 2001 3:53:48 AM) scott lee * @return java.sql.Date * */ public static java.sql.Date toSQLToday() { java.util.Date today = new java.util.Date(); return new java.sql.Date(today.getTime()); } }