eaef5c9f4730c88886e479312e62304e7ebb5699.svn-base 59 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949
  1. package xin.glue.user.common;
  2. import java.util.*;
  3. import java.text.SimpleDateFormat;
  4. import java.text.DecimalFormat;
  5. /**
  6. * This Date related calculation utility will be used for
  7. * all date specific business logic.
  8. *
  9. * Scott Lee - add new method- convertToString()
  10. * @author Scott Lee (10/22/2000)
  11. */
  12. public class EDateUtility {
  13. private static final int millisPerDay = 24 * 60 * 60 * 1000;
  14. private static final java.text.ParsePosition pos = new java.text.ParsePosition(0);
  15. private static final SimpleDateFormat dfDefaultlocale = new SimpleDateFormat();
  16. // private static SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSSSSS");
  17. // private static SimpleDateFormat dfDB2TimeStamp = new SimpleDateFormat("yyyy-MM-dd-kk.mm.ss.ms");
  18. /**
  19. * EDateUtility constructor comment.
  20. */
  21. public EDateUtility() {
  22. super();
  23. }
  24. /**
  25. * add or subtract number of day/month/year from input date.
  26. * eg, add("02/02/2001", "2", "month") -> 04/02/2001
  27. * eg, add("02/02/2001", "-2", "month") -> 12/02/2000
  28. * notes : 'day, month, year' should be lower cases
  29. * Creation date: (10/22/2000 3:43:35 AM)
  30. * @return String express of date 'mm/dd/yyyy'
  31. * @param date_text java.lang.String
  32. * @param s_num java.lang.String - number in string
  33. * @param type java.lang.String - day , month or year
  34. */
  35. public static String add(String date_text, String s_num, String type)
  36. {
  37. // format validation will be required
  38. GregorianCalendar calendar = parseCalendar(date_text);
  39. if (s_num.startsWith("+"))
  40. s_num = s_num.substring(1);
  41. calendar = addDateUnit(calendar, s_num, type.toLowerCase());
  42. return toStringDate(calendar);
  43. }
  44. public static String add(java.sql.Timestamp timestamp, String s_num, String type)
  45. {
  46. // format validation will be required
  47. GregorianCalendar calendar = parseCalendar((Date)timestamp);
  48. if (type.indexOf("day") != -1)
  49. calendar.add(calendar.DATE, Integer.parseInt(s_num) );
  50. else if (type.indexOf("month") != -1)
  51. calendar.add(calendar.MONTH, Integer.parseInt(s_num) );
  52. else if (type.indexOf("year") != -1)
  53. calendar.add(calendar.YEAR, Integer.parseInt(s_num) );
  54. return toStringMonthDate(calendar);
  55. }
  56. /**
  57. * convert numeric month into string
  58. * Creator: Scott Lee
  59. * Creation date: (8/20/2002 2:37:06 PM)
  60. * @return String - return 0 is failure
  61. * @param str java.lang.String
  62. */
  63. /**
  64. * add or subtract number of day/month/year from input date.
  65. * eg, add("02/02/2001", "+2", "MONTH") -> 04/02/2000
  66. * Creation date: (10/22/2000 3:43:35 AM)
  67. * @return String express of date 'mm/dd/yyyy'
  68. * @param date_text java.lang.String
  69. * @param s_num java.lang.String - number in string
  70. * @param type java.lang.String - day , month or year
  71. */
  72. public static String addDateUnit(String date_text, String s_num, String type)
  73. {
  74. // format validation will be required
  75. GregorianCalendar calendar = parseCalendar(date_text);
  76. calendar = addDateUnit(calendar, s_num, type);
  77. return toJDBCStringDate(calendar);
  78. }
  79. /**
  80. * add or subtract number of day/month/year from input date.
  81. * eg, add(calendar, "+2", "MONTH") -> 04/02/2000
  82. * Creation date: (10/22/2000 3:43:35 AM)
  83. * @creator Scott Lee (Jun5, 2002)
  84. * @return String express of date 'mm/dd/yyyy'
  85. * @param date Date
  86. * @param s_num java.lang.String - number in string
  87. * @param type java.lang.String - day , month or year
  88. */
  89. public static GregorianCalendar addDateUnit(Date date, String s_num, String type)
  90. {
  91. // format validation will be required
  92. GregorianCalendar calendar = parseCalendar(date);
  93. if (type.indexOf("day") != -1)
  94. calendar.add(calendar.DATE, Integer.parseInt(s_num) );
  95. else if (type.indexOf("month") != -1)
  96. calendar.add(calendar.MONTH, Integer.parseInt(s_num) );
  97. else if (type.indexOf("year") != -1)
  98. calendar.add(calendar.YEAR, Integer.parseInt(s_num) );
  99. return calendar;
  100. }
  101. /**
  102. * add or subtract number of day/month/year from input date.
  103. * eg, add(calendar, "+2", "MONTH") -> 04/02/2000
  104. * Creation date: (10/22/2000 3:43:35 AM)
  105. * @creator Scott Lee (Jun5, 2002)
  106. * @return String express of date 'mm/dd/yyyy'
  107. * @param calendar GregorianCalendar
  108. * @param s_num java.lang.String - number in string
  109. * @param type java.lang.String - day , month or year
  110. */
  111. public static GregorianCalendar addDateUnit(GregorianCalendar calendar, String s_num, String type)
  112. {
  113. // format validation will be required
  114. if (type.indexOf("day") != -1)
  115. calendar.add(calendar.DATE, Integer.parseInt(s_num) );
  116. else if (type.indexOf("month") != -1)
  117. calendar.add(calendar.MONTH, Integer.parseInt(s_num) );
  118. else if (type.indexOf("year") != -1)
  119. calendar.add(calendar.YEAR, Integer.parseInt(s_num) );
  120. return calendar;
  121. }
  122. /**
  123. * compare two string dates
  124. * Creation date: (6/17/2001 9:06:30 PM)
  125. * @return boolean - true when left > right date
  126. * @param String left_date
  127. * @param String right_date
  128. */
  129. public static boolean after(String left_date, String right_date)
  130. {
  131. GregorianCalendar c_left_date = parseCalendar(left_date);
  132. GregorianCalendar c_right_date = parseCalendar(right_date);
  133. return c_left_date.after(c_right_date);
  134. }
  135. /**and find later date.
  136. * Creation date: (10/22/2000 3:43:35 AM)
  137. * @return java.util.GregorianCalendar
  138. * @param date_text java.lang.String
  139. */
  140. public static boolean after(String begin_date_text, Date enddate)
  141. {
  142. // format validation will be required
  143. GregorianCalendar calendarbegin = parseCalendar(begin_date_text);
  144. GregorianCalendar calendarend = parseCalendar(enddate);
  145. return calendarbegin.after(calendarend);
  146. }
  147. /**
  148. * compare the end date with begin date + / - number of date unit
  149. * Creation date: (10/22/2000 3:43:35 AM)
  150. * @return java.util.GregorianCalendar
  151. * @param date_text java.lang.String
  152. */
  153. public static boolean after(String begin_date_text, Date enddate ,int field ,int amount)
  154. {
  155. // format validation will be required
  156. GregorianCalendar calendarbegin = parseCalendar(begin_date_text);
  157. calendarbegin.add(field, amount);
  158. GregorianCalendar calendarend = parseCalendar(enddate);
  159. return calendarbegin.after(calendarend);
  160. }
  161. /**
  162. * compare which date is later in string format
  163. * Creation date: (6/17/2001 10:39:58 PM)
  164. * @return boolean
  165. * @param left_date java.lang.String
  166. * @param right_date java.lang.String
  167. */
  168. public static boolean after(Date begindate, String endDate)
  169. {
  170. // format validation will be required
  171. GregorianCalendar calendarBegin = parseCalendar(begindate);
  172. GregorianCalendar calendarEnd = parseCalendar(endDate);
  173. return calendarBegin.after(calendarEnd);
  174. }
  175. /**
  176. * Insert the method's description here.
  177. * Creation date: (10/22/2000 3:43:35 AM)
  178. * @return java.util.GregorianCalendar
  179. * @param date_text java.lang.String
  180. */
  181. public static boolean after(Date begindate, String end_date_String ,int field ,int amount)
  182. {
  183. // format validation will be required
  184. GregorianCalendar calendarBegin = parseCalendar(begindate);
  185. calendarBegin.add(field,amount);
  186. GregorianCalendar calendarEnd = parseCalendar(end_date_String);
  187. return calendarBegin.after(calendarEnd);
  188. }
  189. /**
  190. * compare two string dates, A >= B date
  191. * Creation date: (6/17/2001 9:06:30 PM)
  192. * @return boolean - true when left > right date
  193. * @param String left_date
  194. * @param String right_date
  195. */
  196. public static boolean afterEqual(String left_date, String right_date)
  197. {
  198. if (left_date.equals(right_date))
  199. return true;
  200. GregorianCalendar c_left_date = parseCalendar(left_date);
  201. GregorianCalendar c_right_date = parseCalendar(right_date);
  202. return c_left_date.after(c_right_date);
  203. }
  204. /**
  205. * This method checks whether the input string date is greater than today
  206. *
  207. * Creation date: (10/22/2000 3:43:35 AM)
  208. * @return boolean - true if date_text > today + number, else return false
  209. * @param date_text java.lang.String - String express of date 'mm/dd/yyyy'
  210. */
  211. public static boolean afterToday(String date_text)
  212. {
  213. return afterToday(date_text, "0", "day");
  214. }
  215. /**
  216. * This method checks whether the input string date is greater than today + number of date expression
  217. * eg, add("02/02/2001", "+2", "MONTH") -> 04/02/2000
  218. *
  219. * Creation date: (10/22/2000 3:43:35 AM)
  220. * @return boolean - true if date_text > today + number, else return false
  221. * @param date_text java.lang.String - String express of date 'mm/dd/yyyy'
  222. * @param s_num java.lang.String - number of days, months or years (why this isn't int?
  223. * because we can externalize this into rule later
  224. * @param type java.lang.String - indicate day or month or year type
  225. */
  226. public static boolean afterToday(String date_text, String s_num, String type)
  227. {
  228. // format validation will be required
  229. GregorianCalendar compare_date = parseCalendar(date_text);
  230. // get current system date
  231. GregorianCalendar current_date = (GregorianCalendar)Calendar.getInstance();
  232. if (type.indexOf("day") != -1)
  233. compare_date.add(current_date.DATE, Integer.parseInt(s_num) );
  234. else if (type.indexOf("month") != -1)
  235. compare_date.add(current_date.MONTH, Integer.parseInt(s_num) );
  236. else if (type.indexOf("year") != -1)
  237. compare_date.add(current_date.YEAR, Integer.parseInt(s_num) );
  238. // else // invalid date type
  239. // throw new RuleParseException("invalid date type"); - future extend
  240. return compare_date.after(current_date);
  241. }
  242. /**
  243. * check whether the input string date is greater than today + number of date expression
  244. * eg, add("02/02/2001", "+2", "MONTH") -> 04/02/2000
  245. * Creation date: (10/22/2000 3:43:35 AM)
  246. * @return boolean - true if date_text > today + number, else return false
  247. * @param date_text java.lang.String - String express of date
  248. * @param format java.lang.String - different date format
  249. * @param s_num java.lang.String - number of days, months or years (why this isn't int?
  250. * because we can externalize this into rule later
  251. * @param type java.lang.String - indicate day or month or year type
  252. */
  253. public static boolean afterToday(String date_text, String s_num, String type, String format)
  254. {
  255. // format validation will be required
  256. GregorianCalendar compare_date = parseCalendar(date_text, format);
  257. // get current system date
  258. GregorianCalendar current_date = (GregorianCalendar)Calendar.getInstance();
  259. if (type.indexOf("day") != -1)
  260. current_date.add(current_date.DATE, Integer.parseInt(s_num) );
  261. else if (type.indexOf("month") != -1)
  262. current_date.add(current_date.MONTH, Integer.parseInt(s_num) );
  263. else if (type.indexOf("year") != -1)
  264. current_date.add(current_date.YEAR, Integer.parseInt(s_num) );
  265. // else // invalid date type
  266. // throw new RuleParseException("invalid date type"); - future extend
  267. return compare_date.after(current_date);
  268. }
  269. /**
  270. * This method checks whether the input string date is greater than yesterday
  271. *
  272. * Creation date: (10/22/2000 3:43:35 AM)
  273. * @return boolean - true if date_text > today + number, else return false
  274. * @param date_text java.lang.String - String express of date 'mm/dd/yyyy'
  275. */
  276. public static boolean afterYesterday(String date_text)
  277. {
  278. return afterToday(date_text, "1", "day");
  279. }
  280. /**
  281. *
  282. * This method check password expirationd date as of today.
  283. * if today is in window of warning, return true
  284. * mm/dd/yyyy
  285. * <pre>
  286. * example)
  287. * password create date - "07/02/2001" mm/dd/yyyy
  288. * today - "08/01/2001"
  289. * password expired term (defined in EdulinxConstants) - 30 days
  290. * password warning period - 5
  291. * sample code >
  292. int result =
  293. com.edulinx.util.EDateUtility.checkExpiry( "07/02/2001", 30, 5);
  294. System.out.println("====> "+ result);
  295. result will be 1 so display warning message
  296. if result is 0, not yet expired and expired if 2.
  297. </pre>
  298. * Creation date: (Jul 30 2000 3:53:48 AM) scott lee
  299. * @update - bug fix in after today - scott aug 7, 2001
  300. * @return int - 0: not yet, 1: expired soon, 2: expired
  301. * @param start_date_text java.lang.String
  302. * @param end_date_text java.lang.String
  303. * @param expiry_term int
  304. */
  305. public static int checkExpiry(String start_date_text, int expiry_term, int warning_term)
  306. {
  307. // GregorianCalendar today = new GregorianCalendar();
  308. // if expiry date > today, return 2(expired already)
  309. if (!afterToday( start_date_text, String.valueOf(expiry_term), "day"))
  310. return 2;
  311. // if expiry date > today > warning date, return 1(expired soon)
  312. if (!afterToday( start_date_text, String.valueOf(expiry_term - warning_term), "day"))
  313. return 1;
  314. return 0;
  315. }
  316. /**
  317. * convert Date into String by locale and date pattern
  318. * Creation date: (Jul 5, 2002) -Scott Lee
  319. * @return java.lang.String - date expression
  320. * @param inDate Date
  321. * @param pattern String - date pattern
  322. * @param locale Locale
  323. */
  324. public static String convertByLocale(
  325. Date inDate,
  326. String pattern,
  327. Locale locale) {
  328. SimpleDateFormat dateConverter = new SimpleDateFormat(pattern, locale);
  329. return dateConverter.format(inDate);
  330. }
  331. /**
  332. * change CYYMMDD or CCYYMMDD to MM/DD/YYYY format
  333. * Creation date: (10/31/00 4:00:32 PM)
  334. * @return java.lang.String
  335. * @param inDate java.lang.String
  336. */
  337. public static String convertToCSDate(String inDate)
  338. {
  339. String centry = "";
  340. int centry_index = 1;
  341. if (inDate.length() == 7)
  342. {
  343. centry = inDate.substring(0, centry_index);
  344. if (centry.equals("0"))
  345. centry = "19";
  346. else
  347. centry = "20";
  348. }
  349. else if (inDate.length() == 8)
  350. {
  351. centry_index = 2;
  352. centry = inDate.substring(0, centry_index);
  353. }
  354. else if (inDate.equals(""))
  355. {
  356. return inDate;
  357. }
  358. else
  359. {
  360. return "-1"; // invalid date input
  361. }
  362. String year = inDate.substring(centry_index, centry_index + 2);
  363. String month = inDate.substring(centry_index + 2, centry_index + 4);
  364. String day = inDate.substring(centry_index + 4, centry_index + 6);
  365. return month + "/" + day + "/" + centry + year;
  366. }
  367. /**
  368. * This method will convert a date object to a DB2 date string.
  369. * The date string can then be used to update a DB2 timestamp column.
  370. * When updating a DB2 timestamp column with a date-string the format must
  371. * be as follows:
  372. *
  373. * "yyyy-MM-dd-kk.mm.ss.ms"
  374. *
  375. * Creation date: (Sept 8, 2001)
  376. * Author: Anthony Lum
  377. * History:
  378. *
  379. */
  380. public static String convertToDB2TimeStampString(Object aDateObject) {
  381. String aDateString = null;
  382. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSSSSS");
  383. SimpleDateFormat dfDB2TimeStamp = new SimpleDateFormat("yyyy-MM-dd-kk.mm.ss.SSSSSS");
  384. try {
  385. java.util.Date aDate = df.parse( aDateObject.toString() );
  386. aDateString = toDB2TimeStampString(aDate);
  387. // aDateString = dfDB2TimeStamp.format( aDate );
  388. } catch (java.text.ParseException pe) {
  389. aDateString = "";
  390. }
  391. return aDateString;
  392. }
  393. /**
  394. * convert mm/dd/yyyy to cyymmdd format
  395. * Creation date: (10/31/00 4:16:53 PM)scott
  396. * @return java.lang.String
  397. * @param inDate java.lang.String
  398. */
  399. public static String convertToMFDate(String inDate)
  400. {
  401. String month = inDate.substring(0,2);
  402. String day = inDate.substring(3,5);
  403. String centry = inDate.substring(6,8);
  404. String year = inDate.substring(8,10);
  405. if (centry.equals("20"))
  406. centry = "1";
  407. else
  408. centry = "0";
  409. return centry + year + month + day;
  410. }
  411. /**
  412. * convert mm/dd/yyyy to cyymmdd format
  413. * Creation date: (10/31/00 4:16:53 PM)scott
  414. * @return java.lang.String
  415. * @param inDate java.lang.String
  416. */
  417. public static String convertToMFDate(String inDate, int sizeOfMFDate)
  418. {
  419. String month = inDate.substring(0,2);
  420. String day = inDate.substring(3,5);
  421. String centry = inDate.substring(6,8);
  422. String year = inDate.substring(8,10);
  423. if ( sizeOfMFDate == 7 )
  424. {
  425. if (centry.equals("20"))
  426. centry = "1";
  427. else
  428. centry = "0";
  429. }
  430. return centry + year + month + day;
  431. }
  432. /**
  433. * Convert 'MM/DD/YYYY' to 'MMDDYYYY' format
  434. * Creation date: (07/19/02 11:31:02 AM)
  435. * @return java.lang.String
  436. * @param inDate java.lang.String
  437. * created by Mary Hu , Jul.19,2002
  438. */
  439. public static String convertToMFMMDDYYYY(String inDate) {
  440. String month = inDate.substring(0,2);
  441. String day = inDate.substring(3,5);
  442. String year = inDate.substring(6,10);
  443. return month + day + year;
  444. }
  445. /**
  446. * Convert 'YYYY/MM/DD' to 'MM/DD/YYYY' format
  447. * Creation date: (11/9/00 11:31:02 AM)
  448. * @return java.lang.String
  449. * @param inDate java.lang.String
  450. * created by scott lee , Nov 9,00
  451. */
  452. public static String convertToMMDDYYYY(String inDate) {
  453. String month = inDate.substring(5,7);
  454. String day = inDate.substring(8,10);
  455. String year = inDate.substring(0,4);
  456. return month + "/" + day + "/" + year;
  457. }
  458. /**
  459. * convert String input for yyyy, mm, dd into SQL DAte
  460. *
  461. * Creation date: (Jun 6, 2002)
  462. * Author:Scott Lee
  463. * History:
  464. * @param year int - 2002 ie.
  465. * @param month int - 6 for Jun
  466. * @param date int - 20 ie.
  467. * @return java.sql.Date
  468. */
  469. public static java.sql.Date convertToSQLDate(
  470. int year, int month, int day) {
  471. Calendar cal = Calendar.getInstance();
  472. // set year, month and date.
  473. cal.set(year, month-1, day);
  474. // turn calendar into date, and this date into time
  475. long time = cal.getTime().getTime();
  476. // with the time, you can finally create your SQL date
  477. java.sql.Date date = new java.sql.Date(time);
  478. return date;
  479. }
  480. /**
  481. * convert String input for mm/dd/yyyy into SQL DAte
  482. *
  483. * Creation date: (July 31, 2002)
  484. * Author:Scott Lee
  485. * History:
  486. * @param year String - mm/dd/yyyy
  487. * @return java.sql.Date
  488. */
  489. public static java.sql.Date convertToSQLDate(
  490. String date_text) {
  491. String[] array = EDateUtility.convertToStringArray(date_text);
  492. return EDateUtility.convertToSQLDate(array[0], array[1], array[2]);
  493. }
  494. /**
  495. * convert String input for yyyy, mm, dd into SQL DAte
  496. *
  497. * Creation date: (Jun 6, 2002)
  498. * Author:Scott Lee
  499. * History:
  500. * @param year String - 2002 ie.
  501. * @param month String - 6 for Jun
  502. * @param date String - 20 ie.
  503. * @return java.sql.Date
  504. */
  505. public static java.sql.Date convertToSQLDate(
  506. String year,
  507. String month,
  508. String day) {
  509. int d = Integer.parseInt(day);
  510. int m = Integer.parseInt(month);
  511. int y = Integer.parseInt(year);
  512. return convertToSQLDate(y, m, d);
  513. }
  514. /**
  515. * This method will convert a GregorianCalendar or Date object to a date string.
  516. * if format is null, use
  517. * "yyyy-MM-dd-kk.mm.ss.ms" as default
  518. *
  519. * Creation date: (Jun 6, 2002)
  520. * Author: Scott Lee
  521. * History:
  522. * @param obj Object - GregorianCalendar or Date
  523. * @param format String - format of date, "yyyy-MM-dd-kk.mm.ss.ms" as default
  524. * @return String - 2000-01-02-00.00.00:000000 ie.
  525. */
  526. public static String convertToString(Object obj, String format) {
  527. Date date = null;
  528. if (obj instanceof GregorianCalendar) {
  529. Calendar cal = (Calendar) obj;
  530. long time = cal.getTime().getTime();
  531. // with the time, you can finally create your SQL date
  532. date = new java.util.Date(time);
  533. return convertToString(date, format);
  534. } else if (obj instanceof Date)
  535. return convertToString(date, format);
  536. else
  537. return ""; // invalid object for date format,, throw exception later
  538. }
  539. /**
  540. * This method will convert a date object to string by input format
  541. * <pre>
  542. * Default format is
  543. * "yyyy-MM-dd-kk.mm.ss.ms"
  544. * default date is 'today' if null.
  545. *
  546. * </pre>
  547. * Creation date: (Jun 7, 2002)
  548. * Author: Scott Lee
  549. * History:
  550. *
  551. */
  552. public static String convertToString(Date date, String format)
  553. {
  554. // defualt format , if not specified
  555. if (format == null)
  556. format = "yyyy-MM-dd kk:mm:ss.SSSSSS"; // for DB2
  557. if (date == null)
  558. date = new Date();
  559. SimpleDateFormat df = new SimpleDateFormat(format);
  560. return df.format( date );
  561. }
  562. /**
  563. * Convert 'MM/DD/YYYY' to String array of year, month, date
  564. * Creation date: (06/06/02 11:31:02 AM)
  565. * @return java.lang.String
  566. * @param inDate java.lang.String
  567. * created by scott lee , Nov 9,00
  568. */
  569. public static String[] convertToStringArray(String inDate)
  570. {
  571. if (inDate.indexOf('/') == 1)
  572. inDate = "0" + inDate;
  573. String month = inDate.substring(0,2);
  574. String date = inDate.substring(3,5);
  575. String year = inDate.substring(6,10);
  576. String[] array = {year, month, date};
  577. return array;
  578. }
  579. /**
  580. * Convert 'MM/DD/YYYY' to YYYY/MM/DD format
  581. * Creation date: (11/9/00 11:31:02 AM)
  582. * @return java.lang.String
  583. * @param inDate java.lang.String
  584. * created by scott lee , Nov 9,00
  585. */
  586. public static String convertToYYYYMMDD(String inDate)
  587. {
  588. String month = inDate.substring(0,2);
  589. String day = inDate.substring(3,5);
  590. String year = inDate.substring(6,10);
  591. return year + "/" + month + "/" + day;
  592. }
  593. /**
  594. * convert double to String
  595. * Creation date: (10/31/00 4:16:53 PM)scott
  596. * @return java.lang.String
  597. * @param value double
  598. * @param pattern String
  599. */
  600. static public String formatCurrency(double value, String pattern)
  601. {
  602. DecimalFormat formatter = new DecimalFormat(pattern);
  603. return formatter.format(value);
  604. }
  605. /**
  606. * convert double to String
  607. * Creation date: (10/31/00 4:16:53 PM)scott
  608. * @return java.lang.String
  609. * @param value Double
  610. * @param pattern String
  611. */
  612. static public String formatCurrency(Double value, String pattern)
  613. {
  614. return formatCurrency(value.doubleValue(), pattern);
  615. }
  616. /**
  617. * format Date into String as per input format type
  618. * <pre>
  619. * </pre>
  620. * Creation date: (04/17/2002 10:33:00 AM)
  621. * @author: Scott Lee
  622. * @return java.lang.String
  623. * @param date java.util.Date
  624. * @param format String
  625. */
  626. public static String formatDate(Date date, String format)
  627. {
  628. if (date == null)
  629. {
  630. return null;
  631. }
  632. else
  633. {
  634. SimpleDateFormat formatter = new SimpleDateFormat(format);
  635. return formatter.format(date);
  636. }
  637. }
  638. /**
  639. * To get the end date of the current month.
  640. * <pre>
  641. * History
  642. * ---------------------------------------------------------
  643. * Mary Hu Creation date: (07/18/2002 10:16:32 AM)
  644. * </pre>
  645. * @author: Mary Hu
  646. * @return java.util.Date
  647. */
  648. public static Date getCurrentMonthEndDate() {
  649. Date currentDate= new Date();
  650. Calendar calendar= Calendar.getInstance();
  651. calendar.setTime(currentDate);
  652. calendar.add(Calendar.MONTH, 1);
  653. calendar.set(Calendar.DATE,1);
  654. calendar.add(Calendar.DATE,-1);
  655. return calendar.getTime();
  656. }
  657. /**
  658. * calculate number of days between a date and today. Input date is
  659. * string format in this case
  660. * Creation date: (10/22/2000 3:28:42 AM)scott
  661. *
  662. * @return int
  663. * @param end_date java.lang.String ("MM/DD/YYYY")
  664. * @param expiry_term int
  665. */
  666. public static int getDuration(String end_date_text)
  667. {
  668. // format validation will be required
  669. GregorianCalendar start_date = (GregorianCalendar)Calendar.getInstance();
  670. GregorianCalendar end_date = parseCalendar(end_date_text);
  671. return getDuration(start_date, end_date);
  672. }
  673. /**
  674. * calculate number of days between two dates. Input date is
  675. * string format in this case
  676. * Creation date: (10/22/2000 3:28:42 AM)scott
  677. *
  678. * @return int
  679. * @param start_date java.lang.String ("MM/DD/YYYY")
  680. * @param end_date java.lang.String ("MM/DD/YYYY")
  681. * @param expiry_term int
  682. */
  683. public static int getDuration(String start_date_text, String end_date_text)
  684. {
  685. // format validation will be required
  686. GregorianCalendar start_date = parseCalendar(start_date_text);
  687. GregorianCalendar end_date = parseCalendar(end_date_text);
  688. return getDuration(start_date, end_date);
  689. }
  690. /**
  691. * calculate number of days between two dates. Input date is
  692. * string format in this case
  693. * Creation date: (10/22/2000 3:28:42 AM)scott
  694. *
  695. * @return int
  696. * @param start_date java.lang.String ("MM/DD/YYYY")
  697. * @param end_date java.util.Date format ("MM/DD/YYYY")
  698. * @param expiry_term int
  699. */
  700. public static int getDuration(String start_date_text, Date enddate)
  701. {
  702. // format validation will be required
  703. GregorianCalendar start_date = parseCalendar(start_date_text);
  704. GregorianCalendar end_date = parseCalendar(enddate);
  705. return getDuration(start_date, end_date);
  706. }
  707. /**
  708. * calculate number of days between a date and today. Input date is
  709. * string format in this case
  710. * Creation date: (10/22/2000 3:28:42 AM)scott
  711. *
  712. * @return int
  713. * @param end_date java.lang.String ("MM/DD/YYYY")
  714. * @param expiry_term int
  715. */
  716. public static int getDuration(GregorianCalendar end_date)
  717. {
  718. // format validation will be required
  719. GregorianCalendar start_date = (GregorianCalendar)Calendar.getInstance();
  720. return getDuration(start_date, end_date);
  721. }
  722. /**
  723. * calculate number of days between two dates.
  724. * Creation date: (10/22/2000 2:29:49 AM)scott
  725. * @return int
  726. */
  727. public static int getDuration(GregorianCalendar start_date, GregorianCalendar end_date)
  728. {
  729. long duration = ((end_date.getTime().getTime() - start_date.getTime().getTime()) / millisPerDay);
  730. Long ndays = new Long(duration);
  731. return ndays.intValue();
  732. }
  733. /**
  734. * return end date from start date with expiry term
  735. * Creation date: (11/14/2000 2:28:55 AM)scott
  736. * @return boolean
  737. */
  738. public static GregorianCalendar getEndDate(String start_date_text, int expiry_term)
  739. {
  740. GregorianCalendar start_date = parseCalendar(start_date_text);
  741. int dd = start_date.get(start_date.DATE);
  742. int mm = start_date.get(start_date.MONTH);
  743. int yy = start_date.get(start_date.YEAR);
  744. GregorianCalendar expiry_date = new GregorianCalendar(yy, mm, dd );
  745. expiry_date.add(expiry_date.DATE, expiry_term);
  746. // 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) );
  747. // 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) );
  748. return expiry_date;
  749. }
  750. /**
  751. * return end date from start date with expiry term
  752. * Creation date: (11/14/2000 2:28:55 AM)scott
  753. * @return boolean
  754. */
  755. public static GregorianCalendar getEndDate(GregorianCalendar start_date, int expiry_term)
  756. {
  757. int dd = start_date.get(start_date.DATE);
  758. int mm = start_date.get(start_date.MONTH);
  759. int yy = start_date.get(start_date.YEAR);
  760. GregorianCalendar expiry_date = new GregorianCalendar(yy, mm, dd );
  761. expiry_date.add(expiry_date.DATE, expiry_term);
  762. // 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) );
  763. // 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) );
  764. return expiry_date;
  765. }
  766. /**
  767. * convert string month into numeric
  768. * Creator: Scott Lee
  769. * Creation date: (8/20/2002 2:37:06 PM)
  770. * @return String
  771. * @param str java.lang.String
  772. */
  773. public static String getNumericMonth(String str) {
  774. if (str.equalsIgnoreCase("Jan"))
  775. return "01";
  776. else if (str.equalsIgnoreCase("Feb"))
  777. return "02";
  778. else if (str.equalsIgnoreCase("Mar"))
  779. return "03";
  780. else if (str.equalsIgnoreCase("Apr"))
  781. return "04";
  782. else if (str.equalsIgnoreCase("May"))
  783. return "05";
  784. else if (str.equalsIgnoreCase("Jun"))
  785. return "06";
  786. else if (str.equalsIgnoreCase("Jul"))
  787. return "07";
  788. else if (str.equalsIgnoreCase("Aug"))
  789. return "08";
  790. else if (str.equalsIgnoreCase("Sep"))
  791. return "09";
  792. else if (str.equalsIgnoreCase("Oct"))
  793. return "10";
  794. else if (str.equalsIgnoreCase("Nov"))
  795. return "11";
  796. else if (str.equalsIgnoreCase("Dec"))
  797. return "12";
  798. return "0";
  799. }
  800. /**
  801. * add or subtract number of day/month/year from input date.
  802. * eg, add(Timestamp, "+2", "MONTH") -> 04/02/2000
  803. * Creation date: (09/09/2002 3:43:35 AM)
  804. * @creator Scott Lee (Jun5, 2002)
  805. * @return String express of date 'MMM dd, yyyy'
  806. * @param date Date
  807. * @param s_num java.lang.String - number in string
  808. * @param type java.lang.String - day , month or year
  809. */
  810. public static String getStringMonth(String str) {
  811. if (str.equalsIgnoreCase("01"))
  812. return "Jan";
  813. else if (str.equalsIgnoreCase("02"))
  814. return "Feb";
  815. else if (str.equalsIgnoreCase("03"))
  816. return "Mar";
  817. else if (str.equalsIgnoreCase("04"))
  818. return "Apr";
  819. else if (str.equalsIgnoreCase("05"))
  820. return "May";
  821. else if (str.equalsIgnoreCase("06"))
  822. return "Jun";
  823. else if (str.equalsIgnoreCase("07"))
  824. return "Jul";
  825. else if (str.equalsIgnoreCase("08"))
  826. return "Aug";
  827. else if (str.equalsIgnoreCase("09"))
  828. return "Sep";
  829. else if (str.equalsIgnoreCase("10"))
  830. return "Oct";
  831. else if (str.equalsIgnoreCase("11"))
  832. return "Nov";
  833. else if (str.equalsIgnoreCase("12"))
  834. return "Dec";
  835. return "0";
  836. }
  837. /**
  838. * 200208 => Aug-02
  839. * Creator: Scott Lee
  840. * Creation date: (9/6/2002 4:29:57 PM)
  841. * @return java.lang.String
  842. * @param str java.lang.String
  843. */
  844. /**
  845. *
  846. * This method check password expirationd date as of today.
  847. * if today is in window of warning, return true
  848. * mm/dd/yyyy
  849. * <pre>
  850. * example)
  851. * password create date - "07/02/2001" mm/dd/yyyy
  852. * today - "08/01/2001"
  853. * password expired term (defined in EdulinxConstants) - 30 days
  854. * password warning period - 5
  855. * sample code >
  856. boolean result =
  857. com.edulinx.util.EDateUtility.isExpiredSoon( "07/02/2001", 30, 5);
  858. System.out.println("====> "+ result);
  859. result will be 'true' so display warning message
  860. </pre>
  861. * Creation date: (Jul 30 2000 3:53:48 AM) scott lee
  862. * @return boolean
  863. * @param start_date_text java.lang.String
  864. * @param end_date_text java.lang.String
  865. * @param expiry_term int
  866. */
  867. public static boolean isExpiredSoon(String start_date_text, int expiry_term, int warning_term)
  868. {
  869. GregorianCalendar today = new GregorianCalendar();
  870. // if today < warning date, return true
  871. if (afterToday( start_date_text, String.valueOf(expiry_term - warning_term), "day"))
  872. return false;
  873. return true;
  874. }
  875. /**
  876. * This method is used to determine if the input date is long ago from today by expiry term
  877. *
  878. * <pre>
  879. * usage : input date - 07/09/2001 and today is 08/20/2001.
  880. * if expiry term is 30 days, is the input date is longer than 30 days ago from today? yes
  881. * input_date + expiry < today ?
  882. * </pre>
  883. * Creation date: (Aug 20 2001)scott
  884. * @return boolean
  885. * @param inputDate java.util.Date
  886. * @param expiry_term int
  887. */
  888. public static boolean isLongAgo(Date inputDate, int expiry_term)
  889. {
  890. // format validation will be required
  891. GregorianCalendar input_date = parseCalendar(inputDate);
  892. GregorianCalendar today = new GregorianCalendar();
  893. // input date + 30 days < today, eg.
  894. return isWithinTerm( input_date, today, expiry_term);
  895. }
  896. /**
  897. * Check if specific date + warning term after expiry date
  898. * Case 1 - There are fixed start date and variable end date
  899. * For example, to see if your IR is almost near end with 30 days
  900. *
  901. *<pre>usage
  902. *In IR application, client can apply new IR if current IR will be ended soon or within 31 days from today
  903. *ie, Today = May 2, 2002
  904. * IR end day = May 30, 2002
  905. * then this client can apply new IR because existing IR period is less than 1 month or 31 days.
  906. * In your code, write like this,
  907. * EDateUtility.isNearEnd(today, endday, 31)
  908. * it this returns true, it means this IR is near to end and welcome new IR application, prequalify,,,
  909. *
  910. *</pre>
  911. *
  912. * Creation date: Scott Lee (10/22/2000 2:28:55 AM)
  913. * @return boolean
  914. */
  915. public static boolean isNearEnd(Date startdate, Date enddate, int expiry_term)
  916. {
  917. GregorianCalendar start_date = parseCalendar(startdate);
  918. GregorianCalendar end_date = parseCalendar(enddate);
  919. return isNearEnd(start_date, end_date, expiry_term);
  920. }
  921. /**
  922. * Check if specific date + warning term after expiry date
  923. * Case 1 - There are fixed start date and variable end date
  924. For example, to see if your IR is almost near end with 30 days
  925. *
  926. <pre>usage
  927. In IR application, client can apply new IR if current IR will be ended soon or within 31 days from today
  928. ie, Today = May 2, 2002
  929. IR end day = May 30, 2002
  930. then this client can apply new IR because existing IR period is less than 1 month or 31 days.
  931. In your code, write like this,
  932. EDateUtility.isNearEnd(today, endday, 31)
  933. it this returns true, it means this IR is near to end and welcome new IR application, prequalify,,,
  934. </pre>
  935. * Creation date: Scott Lee (10/22/2000 2:28:55 AM)scott
  936. * @return boolean
  937. */
  938. public static boolean isNearEnd(GregorianCalendar start_date, GregorianCalendar end_date, int expiry_term)
  939. {
  940. int dd = start_date.get(start_date.DATE);
  941. int mm = start_date.get(start_date.MONTH);
  942. int yy = start_date.get(start_date.YEAR);
  943. GregorianCalendar expiry_date = new GregorianCalendar(yy, mm, dd );
  944. expiry_date.add(expiry_date.DATE, expiry_term);
  945. //return end_date.after(expiry_date);
  946. return expiry_date.after(end_date);
  947. }
  948. /**
  949. * validate date format
  950. * Creation date: (10/31/00 4:00:32 PM) scott
  951. * @return java.lang.String
  952. * @param inDate java.lang.String
  953. */
  954. public static boolean isValidDateFormat(String inDate, String format)
  955. {
  956. Date outDate = null;
  957. try
  958. { format = format.toLowerCase();
  959. int indexOfMonth = format.indexOf('m');
  960. System.out.println(" Scott : index -> " + indexOfMonth);
  961. int lastIndexOfMonth = format.indexOf('/');
  962. System.out.println(" Scott : index -> " + lastIndexOfMonth);
  963. String month_text = inDate.substring(indexOfMonth, lastIndexOfMonth);
  964. int month = Integer.valueOf(month_text).intValue();
  965. System.out.println(" Scott : month -> " + month);
  966. SimpleDateFormat formatter = new SimpleDateFormat(format);
  967. outDate = formatter.parse(inDate);
  968. }catch(Exception e)
  969. {
  970. return false;
  971. // throw new InvalidAttributeValueException(AmsConstants.INVALID_DATE_ATTRIBUTE);
  972. }
  973. return true;
  974. }
  975. /**
  976. * Check specific date is next month from today
  977. * <pre>
  978. * for example, today = 08/09/2001 and examing date = 09/02/2001
  979. * today + 1 month = 09/09/2001. Therefore examing date is withinNextMonth.
  980. * This comparison method does not care about the date. It only compares month.
  981. * If you enter '09/13/2001' as examing date, still this date is within next month.
  982. * </pre>
  983. * default format yyyymmdd
  984. * Creation date: (11/13/2000 3:53:48 AM)scott
  985. * @return boolean - true if within next month
  986. * @param date_text java.lang.String - input date
  987. */
  988. public static boolean isWithinNextMonth(String date_text)
  989. {
  990. GregorianCalendar today = new GregorianCalendar();
  991. today.add(today.MONTH, 1);
  992. int next_month = today.get(today.MONTH);
  993. int today_year = today.get(today.YEAR);
  994. // format validation will be required
  995. GregorianCalendar date = parseCalendar(date_text, "yyyymmdd"); // change later for dynamic format
  996. int input_month = date.get(date.MONTH);
  997. int input_year = date.get(date.YEAR);
  998. if ((input_year <= today_year) && (input_month <= next_month))
  999. return true;
  1000. return false;
  1001. }
  1002. /**
  1003. * Check specific date is next month from today
  1004. * <pre>
  1005. * for example, today = 08/09/2001 and examing date = 09/02/2001
  1006. * today + 1 month = 09/09/2001. Therefore examing date is withinNextMonth.
  1007. * This comparison method does not care about the date. It only compares month.
  1008. * If you enter '09/13/2001' as examing date, still this date is within next month.
  1009. * </pre>
  1010. * Data format can be any (eg,yyyymmdd or mm/dd/yyyy)
  1011. * Creation date: (Aug 9 2001 3:53:48 AM) Scott Lee
  1012. * @return boolean - true if within next month
  1013. * @param date_text java.lang.String - input date
  1014. * @param date_format java.lang.String - date format (eg,yyyymmdd or mm/dd/yyyy)
  1015. */
  1016. public static boolean isWithinNextMonth(String date_text, String date_format)
  1017. {
  1018. GregorianCalendar today = new GregorianCalendar();
  1019. today.add(today.MONTH, 1);
  1020. int next_month = today.get(today.MONTH);
  1021. int today_year = today.get(today.YEAR);
  1022. // format validation will be required
  1023. GregorianCalendar date = parseCalendar(date_text, date_format); // change later for dynamic format
  1024. int input_month = date.get(date.MONTH);
  1025. int input_year = date.get(date.YEAR);
  1026. if ((input_year <= today_year) && (input_month <= next_month))
  1027. return true;
  1028. return false;
  1029. }
  1030. /**
  1031. * Check specific date is next month from today
  1032. * <pre>
  1033. * for example, today = 08/09/2001 and examing date = 09/02/2001
  1034. * today + 1 month = 09/09/2001. Therefore examing date is withinNextMonth.
  1035. * This comparison method does not care about the date. It only compares month.
  1036. * If you enter '09/13/2001' as examing date, still this date is within next month.
  1037. * </pre>
  1038. * default format : Date
  1039. * @Creation date: (Aug 9 2001 3:43:35 AM) Scott Lee
  1040. * @return boolean - true if within next month
  1041. * @param inputDate Date - input date
  1042. */
  1043. public static boolean isWithinNextMonth(Date inputDate)
  1044. {
  1045. GregorianCalendar today = new GregorianCalendar();
  1046. today.add(today.MONTH, 1);
  1047. int next_month = today.get(today.MONTH);
  1048. int today_year = today.get(today.YEAR);
  1049. // format validation will be required
  1050. GregorianCalendar date = parseCalendar(inputDate);
  1051. int input_month = date.get(date.MONTH);
  1052. int input_year = date.get(date.YEAR);
  1053. if ((input_year <= today_year) && (input_month <= next_month))
  1054. return true;
  1055. return false;
  1056. }
  1057. /**
  1058. * Check specific date is next month from today
  1059. * <pre>
  1060. * for example, today = 08/09/2001 and examing date = 09/02/2001
  1061. * today + 1 month = 09/09/2001. Therefore examing date is withinNextMonth.
  1062. * This comparison method does not care about the date. It only compares month.
  1063. * If you enter '09/13/2001' as examing date, still this date is within next month.
  1064. * </pre>
  1065. * default format : Date
  1066. * @Creation date: (Aug 9 2001 3:43:35 AM) Scott Lee
  1067. * @return boolean - true if within next month
  1068. * @param date GregorianCalendar - input date
  1069. */
  1070. public static boolean isWithinNextMonth(GregorianCalendar date)
  1071. {
  1072. GregorianCalendar today = new GregorianCalendar();
  1073. today.add(today.MONTH, 1);
  1074. int next_month = today.get(today.MONTH);
  1075. int today_year = today.get(today.YEAR);
  1076. // format validation will be required
  1077. int input_month = date.get(date.MONTH);
  1078. int input_year = date.get(date.YEAR);
  1079. if ((input_year <= today_year) && (input_month <= next_month))
  1080. return true;
  1081. return false;
  1082. }
  1083. /**
  1084. * Check specific date is before expiry date, input in string format, this method uses today as default end date
  1085. * mm/dd/yyyy
  1086. * Case 1 - There are fixed start date and variable end date
  1087. 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..
  1088. *
  1089. <pre>usage
  1090. if start date is 10/01/2001 and expiry term is 5, end date
  1091. 10/04/2001--> false => within due date
  1092. 10/05/2001--> false => within due date
  1093. 10/06/2001--> false => within due date
  1094. 10/07/2001--> true => due date is over
  1095. =====================
  1096. Case 2 - There are variable start date and fixed end date
  1097. For example, you can not apply new IR application if still too many days left until existing IR end date
  1098. if end date date is 10/06/2001 and expiry term is 5, start date
  1099. 09/30/2001 --> true => too early to apply
  1100. 10/01/2001--> false => eligible
  1101. 10/02/2001--> false => eligible
  1102. 10/03/2001--> false => eligible
  1103. </pre>
  1104. * Creation date: (11/13/2000 3:53:48 AM)scott
  1105. * @return boolean
  1106. * @param start_date_text java.lang.String
  1107. * @param end_date_text java.lang.String
  1108. * @param expiry_term int
  1109. */
  1110. public static boolean isWithinTerm(String start_date_text, int expiry_term)
  1111. {
  1112. GregorianCalendar today = new GregorianCalendar();
  1113. String enddate = (today.get(today.MONTH) + 1) + "/" + today.get(today.DATE) + "/" + today.get(today.YEAR);
  1114. // format validation will be required
  1115. GregorianCalendar start_date = parseCalendar(start_date_text);
  1116. GregorianCalendar end_date = parseCalendar(enddate);
  1117. return isWithinTerm(start_date, end_date, expiry_term);
  1118. }
  1119. /**
  1120. * Check specific date is before expiry date, input in string format
  1121. * mm/dd/yyyy
  1122. * Case 1 - There are fixed start date and variable end date
  1123. 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..
  1124. *
  1125. <pre>usage
  1126. if start date is 10/01/2001 and expiry term is 5, end date
  1127. 10/04/2001--> false => within due date
  1128. 10/05/2001--> false => within due date
  1129. 10/06/2001--> false => within due date
  1130. 10/07/2001--> true => due date is over
  1131. =====================
  1132. Case 2 - There are variable start date and fixed end date
  1133. For example, you can not apply new IR application if still too many days left until existing IR end date
  1134. if end date date is 10/06/2001 and expiry term is 5, start date
  1135. 09/30/2001 --> true => too early to apply
  1136. 10/01/2001--> false => eligible
  1137. 10/02/2001--> false => eligible
  1138. 10/03/2001--> false => eligible
  1139. </pre>
  1140. * formula - (start_date + expiry_term < end_date)
  1141. * Creation date: (10/22/2000 3:53:48 AM)scott
  1142. * @return boolean
  1143. * @param start_date_text java.lang.String
  1144. * @param end_date_text java.lang.String
  1145. * @param expiry_term int
  1146. */
  1147. public static boolean isWithinTerm(String start_date_text, String end_date_text, int expiry_term)
  1148. {
  1149. // format validation will be required
  1150. GregorianCalendar start_date = parseCalendar(start_date_text);
  1151. GregorianCalendar end_date = parseCalendar(end_date_text);
  1152. // if start + 30 days < end date
  1153. return isWithinTerm(start_date, end_date, expiry_term);
  1154. }
  1155. /**
  1156. * Check specific date is before expiry date, input in string format
  1157. * mm/dd/yyyy
  1158. * Case 1 - There are fixed start date and variable end date
  1159. 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..
  1160. *
  1161. <pre>usage
  1162. if start date is 10/01/2001 and expiry term is 5, end date
  1163. 10/04/2001--> false => within due date
  1164. 10/05/2001--> false => within due date
  1165. 10/06/2001--> false => within due date
  1166. 10/07/2001--> true => due date is over
  1167. =====================
  1168. Case 2 - There are variable start date and fixed end date
  1169. For example, you can not apply new IR application if still too many days left until existing IR end date
  1170. if end date date is 10/06/2001 and expiry term is 5, start date
  1171. 09/30/2001 --> true => too early to apply
  1172. 10/01/2001--> false => eligible
  1173. 10/02/2001--> false => eligible
  1174. 10/03/2001--> false => eligible
  1175. </pre>
  1176. * Creation date: (10/22/2000 3:53:48 AM)scott
  1177. * @return boolean
  1178. * @param start_date_text java.lang.String
  1179. * @param end_date_text java.lang.String
  1180. * @param expiry_term int
  1181. */
  1182. public static boolean isWithinTerm(String start_date_text, Date enddate, int expiry_term)
  1183. {
  1184. // format validation will be required
  1185. GregorianCalendar start_date = parseCalendar(start_date_text);
  1186. GregorianCalendar end_date = parseCalendar(enddate);
  1187. return isWithinTerm(start_date, end_date, expiry_term);
  1188. }
  1189. /**
  1190. * Check specific date is before expiry date, input in string format, this method uses today as default end date
  1191. * mm/dd/yyyy
  1192. * <pre>
  1193. * usage : input date - 09/09/2001 and today is 08/20/2001.
  1194. * if expiry term is 30 days from today, is the input date within term? yes.
  1195. * input_date + expiry < today ?
  1196. * </pre>
  1197. * Case 1 - There are fixed start date and variable end date
  1198. 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..
  1199. *
  1200. <pre>usage
  1201. if start date is 10/01/2001 and expiry term is 5, end date
  1202. 10/04/2001--> false => within due date
  1203. 10/05/2001--> false => within due date
  1204. 10/06/2001--> false => within due date
  1205. 10/07/2001--> true => due date is over
  1206. =====================
  1207. Case 2 - There are variable start date and fixed end date
  1208. For example, you can not apply new IR application if still too many days left until existing IR end date
  1209. if end date date is 10/06/2001 and expiry term is 5, start date
  1210. 09/30/2001 --> true => too early to apply
  1211. 10/01/2001--> false => eligible
  1212. 10/02/2001--> false => eligible
  1213. 10/03/2001--> false => eligible
  1214. </pre>
  1215. * Creation date: (11/13/2000 3:53:48 AM)scott
  1216. * @return boolean
  1217. * @param start_date_text java.lang.String
  1218. * @param end_date_text java.lang.String
  1219. * @param expiry_term int
  1220. */
  1221. public static boolean isWithinTerm(Date inputDate, int expiry_term)
  1222. {
  1223. // format validation will be required
  1224. GregorianCalendar input_date = parseCalendar(inputDate);
  1225. GregorianCalendar today = new GregorianCalendar();
  1226. return isWithinTerm(input_date, today, expiry_term);
  1227. }
  1228. /**
  1229. * Check specific date is before expiry date, input in string format
  1230. * mm/dd/yyyy
  1231. * Case 1 - There are fixed start date and variable end date
  1232. 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..
  1233. *
  1234. <pre>usage
  1235. if start date is 10/01/2001 and expiry term is 5, end date
  1236. 10/04/2001--> false => within due date
  1237. 10/05/2001--> false => within due date
  1238. 10/06/2001--> false => within due date
  1239. 10/07/2001--> true => due date is over
  1240. =====================
  1241. Case 2 - There are variable start date and fixed end date
  1242. For example, you can not apply new IR application if still too many days left until existing IR end date
  1243. if end date date is 10/06/2001 and expiry term is 5, start date
  1244. 09/30/2001 --> true => too early to apply
  1245. 10/01/2001--> false => eligible
  1246. 10/02/2001--> false => eligible
  1247. 10/03/2001--> false => eligible
  1248. </pre>
  1249. * Creation date: (10/22/2000 3:53:48 AM)scott
  1250. * @return boolean
  1251. * @param start_date Date
  1252. * @param end_date Date
  1253. * @param expiry_term int
  1254. */
  1255. public static boolean isWithinTerm(Date startdate, Date enddate, int expiry_term)
  1256. {
  1257. // format validation will be required
  1258. GregorianCalendar start_date = parseCalendar(startdate);
  1259. GregorianCalendar end_date = parseCalendar(enddate);
  1260. return isWithinTerm(start_date, end_date, expiry_term);
  1261. }
  1262. /**
  1263. * Check specific date is before expiry date
  1264. * Case 1 - There are fixed start date and variable end date
  1265. 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..
  1266. *
  1267. <pre>usage
  1268. if start date is 10/01/2001 and expiry term is 5, end date
  1269. 10/04/2001--> false => within due date
  1270. 10/05/2001--> false => within due date
  1271. 10/06/2001--> false => within due date
  1272. 10/07/2001--> true => due date is over
  1273. =====================
  1274. Case 2 - There are variable start date and fixed end date
  1275. For example, you can not apply new IR application if still too many days left until existing IR end date
  1276. if end date date is 10/06/2001 and expiry term is 5, start date
  1277. 09/30/2001 --> true => too early to apply
  1278. 10/01/2001--> false => eligible
  1279. 10/02/2001--> false => eligible
  1280. 10/03/2001--> false => eligible
  1281. </pre>
  1282. * Creation date: (10/22/2000 2:28:55 AM)scott
  1283. * @return boolean
  1284. */
  1285. public static boolean isWithinTerm(GregorianCalendar start_date, GregorianCalendar end_date, int expiry_term)
  1286. {
  1287. int dd = start_date.get(start_date.DATE);
  1288. int mm = start_date.get(start_date.MONTH);
  1289. int yy = start_date.get(start_date.YEAR);
  1290. GregorianCalendar expiry_date = new GregorianCalendar(yy, mm, dd );
  1291. expiry_date.add(expiry_date.DATE, expiry_term);
  1292. return end_date.after(expiry_date);
  1293. }
  1294. /**
  1295. * convert String expression date to GregorianCalendar object
  1296. * Creation date: (10/22/2000 3:43:35 AM)
  1297. * History
  1298. * ----------------------------------------------------------
  1299. * Scott (Jul 19, 2002) - fixed bug
  1300. *
  1301. * @return java.util.GregorianCalendar
  1302. * @param date_text java.lang.String - mm/dd/yyyy format
  1303. */
  1304. public static GregorianCalendar parseCalendar(String date_text)
  1305. {
  1306. // format validation will be required
  1307. if (date_text.indexOf('/') == 1)
  1308. date_text = "0" + date_text;
  1309. String mm = date_text.substring(0,2);
  1310. String dd = date_text.substring(3,5);
  1311. String yy = date_text.substring(6,10);
  1312. int month = Integer.valueOf(mm).intValue();
  1313. int day = Integer.valueOf(dd).intValue();
  1314. int year = Integer.valueOf(yy).intValue();
  1315. GregorianCalendar gCalendar = new GregorianCalendar(year, month-1, day);
  1316. return gCalendar;
  1317. }
  1318. /**
  1319. * convert String expression date to GregorianCalendar object
  1320. * Creation date: (Aug 9 2001 3:43:35 AM) Scott Lee
  1321. * History
  1322. * ----------------------------------------------------------
  1323. * Scott (Jul 19, 2002) - fixed bug
  1324. *
  1325. * @return java.util.GregorianCalendar
  1326. * @param date_text java.lang.String - yyyymmdd format or mm/dd/yyyy - in future will be changed for dynamic format
  1327. * @param data_format java.lang.String - yyyymmdd format or mm/dd/yyyy - in future will be changed for dynamic format
  1328. */
  1329. public static GregorianCalendar parseCalendar(String date_text, String date_format)
  1330. {
  1331. if (date_format.equals("mm/dd/yyyy"))
  1332. return parseCalendar(date_text);
  1333. if (date_format.equals("yyyymmdd")) // format validation will be required
  1334. {
  1335. String mm = date_text.substring(4,6);
  1336. String dd = date_text.substring(6,8);
  1337. String yy = date_text.substring(0,4);
  1338. int month = Integer.valueOf(mm).intValue();
  1339. int day = Integer.valueOf(dd).intValue();
  1340. int year = Integer.valueOf(yy).intValue();
  1341. GregorianCalendar gCalendar = new GregorianCalendar(year, month, day);
  1342. return gCalendar;
  1343. }
  1344. return null; // can not handle any other format,,, enhance later for dynamic format..scottAug 9,2001
  1345. }
  1346. /**
  1347. * parse Date to GregorianCalendar
  1348. * Creation date: (10/22/2000 3:43:35 AM) Scott Lee
  1349. * @return java.util.GregorianCalendar,
  1350. * @param date_text java.lang.String
  1351. */
  1352. public static GregorianCalendar parseCalendar(Date date)
  1353. {
  1354. GregorianCalendar gCalendar = new GregorianCalendar();
  1355. gCalendar.setTime(date);
  1356. return gCalendar;
  1357. }
  1358. /**
  1359. * convert String expression date (MM/dd/yyyy) to Date object
  1360. * Creation date: (10/22/2000 3:43:35 AM)
  1361. * History
  1362. * ----------------------------------------------------------------
  1363. * Scott (07/19/2002) - Update the year, month logic, please use com.edulinx.base.util.EDateUtility from now,
  1364. *
  1365. * @return java.util.GregorianCalendar
  1366. * @param date_text java.lang.String - MM/dd/yyyy format
  1367. * @deprecated As of Corporate EDateUtility
  1368. */
  1369. public static Date parseDate(String date_text)
  1370. {
  1371. // format validation will be required
  1372. String mm = date_text.substring(0,2);
  1373. String dd = date_text.substring(3,5);
  1374. String yy = date_text.substring(6,10);
  1375. int month = Integer.valueOf(mm).intValue();
  1376. int day = Integer.valueOf(dd).intValue();
  1377. int year = Integer.valueOf(yy).intValue();
  1378. return new Date(year-1900, month-1, day);
  1379. }
  1380. /**
  1381. * parse Date to GregorianCalendar
  1382. * Creation date: (10/22/2000 3:43:35 AM) Scott Lee
  1383. * History
  1384. * -----------------------------------------------------------
  1385. * Scott (Jul 19, 2002) - fixed bug
  1386. * @return java.util.GregorianCalendar,
  1387. * @param date_text java.lang.String
  1388. */
  1389. public static Date parseDate(GregorianCalendar calendar)
  1390. {
  1391. int y = calendar.get(java.util.Calendar.YEAR);
  1392. int m = calendar.get(java.util.Calendar.MONTH);
  1393. int d = calendar.get(java.util.Calendar.DAY_OF_MONTH);
  1394. int h = calendar.get(java.util.Calendar.HOUR_OF_DAY);
  1395. int mi = calendar.get(java.util.Calendar.MINUTE);
  1396. int s = calendar.get(java.util.Calendar.SECOND);
  1397. return new Date(y-1900, m, d, h, mi, s);
  1398. }
  1399. /**
  1400. *
  1401. * This method convert GregorianCalendar to String expression('YYYY-MM-DD-HH.MM.SS.SSSSSS')
  1402. * @creation date: (Jul 30 2000 3:53:48 AM) scott lee
  1403. * @return String (YYYY-mm-DD-HH.MM.SS.SSSSSS) - date of today in string
  1404. * @param Date date
  1405. */
  1406. public static String toDB2TimeStampString(Object obj)
  1407. {
  1408. Date _date = (Date)obj;
  1409. // first convert the date to GregorianCalendar
  1410. GregorianCalendar date = parseCalendar(_date);
  1411. int dd = date.get(date.DATE);
  1412. int mm = date.get(date.MONTH)+1;
  1413. int yy = date.get(date.YEAR);
  1414. int kk = date.get(date.HOUR_OF_DAY);
  1415. int mi = date.get(date.MINUTE);
  1416. int ss = date.get(date.SECOND);
  1417. int ms = date.get(date.MILLISECOND);
  1418. // pad 0 in front of single digit to be 01/01/2000 format
  1419. String day0="", month0="", kk0="", mi0="", ss0="", ms0="";
  1420. if (dd < 10) day0 = "0";
  1421. if (mm < 10) month0 = "0";
  1422. if (kk < 10) kk0 = "0";
  1423. if (mi < 10) mi0 = "0";
  1424. if (ss < 10) ss0 = "0";
  1425. if (ms < 10) ms0 = "00000";
  1426. else if (ms < 100) ms0 = "0000";
  1427. else if (ms < 1000) ms0 = "000";
  1428. else if (ms < 10000) ms0 = "00";
  1429. else if (ms < 100000) ms0 = "0";
  1430. return String.valueOf(yy) + "-" +
  1431. month0 + String.valueOf(mm) + "-" +
  1432. day0 + String.valueOf(dd) + "-" +
  1433. kk0 + String.valueOf(kk) + "." +
  1434. mi0 + String.valueOf(mi) + "." +
  1435. ss0 + String.valueOf(ss) + "." +
  1436. ms0 + String.valueOf(ms);
  1437. }
  1438. /**
  1439. *
  1440. * This method convert GregorianCalendar to String expression('mm/dd/yyyy')
  1441. * @creation date: (Jul 30 2000 3:53:48 AM) scott lee
  1442. * @return String (mm//dd/yyyy) - date of today in string
  1443. * @param GregorianCalendar date
  1444. */
  1445. public static String toJDBCStringDate(GregorianCalendar date)
  1446. {
  1447. int dd = date.get(date.DATE);
  1448. int mm = date.get(date.MONTH)+1;
  1449. int yy = date.get(date.YEAR);
  1450. // pad 0 in front of single digit to be 01/01/2000 format
  1451. String day0="", month0="";
  1452. if (dd < 10)
  1453. day0 = "0";
  1454. if (mm < 10)
  1455. month0 = "0";
  1456. return String.valueOf(yy) + "-" + month0 + String.valueOf(mm) + "-" + day0 + String.valueOf(dd);
  1457. }
  1458. public static String toMonthYear(String str)
  1459. {
  1460. String year = str.substring(0, 4);
  1461. String month = str.substring(4);
  1462. // get previous month
  1463. String s_month = getStringMonth(month);
  1464. return s_month + "-" + year.substring(2);
  1465. }
  1466. /**
  1467. * Sep-02 -> 200209
  1468. * Creator: Scott Lee
  1469. * Creation date: (9/16/2002 11:56:53 AM)
  1470. * @return java.lang.String
  1471. * @param str java.lang.String
  1472. */
  1473. public static String toNumberMonthYear(String str)
  1474. {
  1475. String month = str.substring(0,3);
  1476. String year = str.substring(4);
  1477. int i_year = Integer.parseInt(year);
  1478. int centry = 20;
  1479. if (i_year > 70)
  1480. centry = 19;
  1481. return centry + year + EDateUtility.getNumericMonth(month);
  1482. }
  1483. /**
  1484. *
  1485. * This method convert GregorianCalendar to String expression('May 10, 2002')
  1486. * @creation date: (Jul 30 2000 3:53:48 AM) scott lee
  1487. * @return String (mm//dd/yyyy) - date of today in string
  1488. * @param GregorianCalendar date
  1489. */
  1490. /**
  1491. *
  1492. * This method convert GregorianCalendar to String expression('mm/dd/yyyy')
  1493. * @creation date: (Jul 30 2000 3:53:48 AM) scott lee
  1494. * @return String (mm//dd/yyyy) - date of today in string
  1495. * @param GregorianCalendar date
  1496. */
  1497. public static String toStringDate(GregorianCalendar date)
  1498. {
  1499. int dd = date.get(date.DATE);
  1500. int mm = date.get(date.MONTH)+1;
  1501. int yy = date.get(date.YEAR);
  1502. // pad 0 in front of single digit to be 01/01/2000 format
  1503. String day0="", month0="";
  1504. if (dd < 10)
  1505. day0 = "0";
  1506. if (mm < 10)
  1507. month0 = "0";
  1508. return month0 + String.valueOf(mm) + "/" + day0 + String.valueOf(dd) + "/" + String.valueOf(yy);
  1509. }
  1510. /**
  1511. *
  1512. * This method convert GregorianCalendar to String expression('mm/dd/yyyy')
  1513. * @creation date: (Jul 30 2000 3:53:48 AM) scott lee
  1514. * @return String (mm//dd/yyyy) - date of today in string
  1515. * @param GregorianCalendar date
  1516. */
  1517. public static String toStringDateTime(GregorianCalendar date)
  1518. {
  1519. int dd = date.get(date.DATE);
  1520. int mm = date.get(date.MONTH)+1;
  1521. int yy = date.get(date.YEAR);
  1522. int hh = date.get(date.HOUR);
  1523. int mi = date.get(date.MINUTE);
  1524. int ss = date.get(date.SECOND);
  1525. int ms = date.get(date.MILLISECOND);
  1526. // pad 0 in front of single digit to be 01/01/2000 format
  1527. String day0="", month0="";
  1528. if (dd < 10)
  1529. day0 = "0";
  1530. if (mm < 10)
  1531. month0 = "0";
  1532. return month0 + String.valueOf(mm) + "/" + day0 + String.valueOf(dd) + "/" + String.valueOf(yy) + " " + hh + ":" + mi + ":" + ss + ":" + ms ;
  1533. }
  1534. public static String toStringMonthDate(GregorianCalendar date)
  1535. {
  1536. int dd = date.get(date.DATE);
  1537. int mm = date.get(date.MONTH)+1;
  1538. int yy = date.get(date.YEAR);
  1539. // pad 0 in front of single digit to be 01/01/2000 format
  1540. String day0="", month0="";
  1541. if (mm < 10)
  1542. month0 = "0";
  1543. return getStringMonth(month0 + String.valueOf(mm)) + " " + day0 + String.valueOf(dd) + ", " + String.valueOf(yy);
  1544. }
  1545. /**
  1546. *
  1547. * This method convert today GregorianCalendar to String expression('mm/dd/yyyy')
  1548. * @creation date: (Aug 2 2001 3:53:48 AM) scott lee
  1549. * @return String (mm//dd/yyyy) - date of today in string
  1550. *
  1551. */
  1552. public static String toStringToday()
  1553. {
  1554. // get current system date
  1555. GregorianCalendar date = (GregorianCalendar)Calendar.getInstance();
  1556. // convert to string
  1557. return toStringDate(date);
  1558. }
  1559. /**
  1560. *
  1561. * This method convert today GregorianCalendar to String expression('mm/dd/yyyy')
  1562. * @creation date: (Aug 2 2001 3:53:48 AM) scott lee
  1563. * @return String (mm//dd/yyyy) - date of today in string
  1564. *
  1565. */
  1566. public static String toStringTodayTime()
  1567. {
  1568. // get current system date
  1569. GregorianCalendar date = (GregorianCalendar)Calendar.getInstance();
  1570. // convert to string
  1571. return toStringDateTime(date);
  1572. }
  1573. /**
  1574. * compare which date is later in string format
  1575. * left - mar 1 2003 , right - mar 2 2003 then result is false
  1576. * Creation date: (6/17/2001 10:39:58 PM)
  1577. * @return boolean
  1578. * @param left_date java.lang.String
  1579. * @param right_date java.lang.String
  1580. */
  1581. public static boolean after(Date left_date, Date right_date)
  1582. {
  1583. // format validation will be required
  1584. GregorianCalendar calendarBegin = parseCalendar(left_date);
  1585. GregorianCalendar calendarEnd = parseCalendar(right_date);
  1586. return calendarBegin.after(calendarEnd);
  1587. }
  1588. /**
  1589. * format Date into String as per input format type
  1590. * <pre>
  1591. * </pre>
  1592. * Creation date: (04/17/2002 10:33:00 AM)
  1593. * @author: Scott Lee
  1594. * @return java.lang.String
  1595. * @param date java.util.Date
  1596. * @param format String
  1597. */
  1598. public static String formatCalendar(GregorianCalendar date, String format)
  1599. {
  1600. if (date == null)
  1601. {
  1602. return null;
  1603. }
  1604. else
  1605. {
  1606. Date _date = parseDate(date);
  1607. SimpleDateFormat formatter = new SimpleDateFormat(format);
  1608. return formatter.format(_date);
  1609. }
  1610. }
  1611. /**
  1612. *
  1613. * This method converts today Date to given format( ie. 'mm/dd/yyyy')
  1614. * @creation date: (Aug 2 2001 3:53:48 AM) scott lee
  1615. * @return String (mm//dd/yyyy) - date of today in string
  1616. *
  1617. */
  1618. public static String toStringToday(String format)
  1619. {
  1620. // get current system date
  1621. Date today = new Date();
  1622. // convert to string
  1623. return formatDate(today, format);
  1624. }
  1625. /**
  1626. *
  1627. * This method converts today Date to java.sql.Timestamp
  1628. * @creation date: (Aug 2 2001 3:53:48 AM) scott lee
  1629. * @return java.sql.Timestamp
  1630. *
  1631. */
  1632. public static java.sql.Timestamp toSQLTimestampToday()
  1633. {
  1634. java.util.Date today = new java.util.Date();
  1635. return new java.sql.Timestamp(today.getTime());
  1636. }
  1637. /**
  1638. *
  1639. * This method converts today Date to java.sql.Date
  1640. * @creation date: (Aug 2 2001 3:53:48 AM) scott lee
  1641. * @return java.sql.Date
  1642. *
  1643. */
  1644. public static java.sql.Date toSQLToday()
  1645. {
  1646. java.util.Date today = new java.util.Date();
  1647. return new java.sql.Date(today.getTime());
  1648. }
  1649. }