| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949 |
- 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
- * <pre>
- * 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.
- </pre>
- * 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
- * <pre>
- * Default format is
- * "yyyy-MM-dd-kk.mm.ss.ms"
- * default date is 'today' if null.
- *
- * </pre>
- * 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
- * <pre>
- * </pre>
- * 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.
- * <pre>
- * History
- * ---------------------------------------------------------
- * Mary Hu Creation date: (07/18/2002 10:16:32 AM)
- * </pre>
- * @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
- * <pre>
- * 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
- </pre>
- * 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
- *
- * <pre>
- * 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 ?
- * </pre>
- * 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
- *
- *<pre>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,,,
- *
- *</pre>
- *
- * 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
- *
- <pre>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,,,
-
- </pre>
-
- * 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
- * <pre>
- * 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.
- * </pre>
- * 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
- * <pre>
- * 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.
- * </pre>
- * 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
- * <pre>
- * 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.
- * </pre>
- * 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
- * <pre>
- * 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.
- * </pre>
- * 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..
- *
- <pre>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
- </pre>
-
- * 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..
- *
- <pre>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
- </pre>
-
- * 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..
- *
- <pre>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
- </pre>
-
- * 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
- * <pre>
- * 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 ?
- * </pre>
- * 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..
- *
- <pre>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
- </pre>
-
- * 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..
- *
- <pre>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
- </pre>
-
- * 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..
- *
- <pre>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
- </pre>
-
- * 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
- * <pre>
- * </pre>
- * 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());
-
- }
- }
|