2f397b55a70ff122227949ef3de53c99866599b5.svn-base 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498
  1. package xin.glue.ui.common;
  2. import java.text.DateFormatSymbols;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Calendar;
  5. import java.util.Locale;
  6. public class PosDateFormat {
  7. /**
  8. * @Title 현재 날짜를 가져오는 함수 (서버모듈에서 실행)
  9. * @return 년월일 8자리 String
  10. */
  11. static public String getCurrentDate() {
  12. java.util.Date date = new java.util.Date();
  13. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
  14. return dateFormat.format(date);
  15. }
  16. /**
  17. * @Title 현재 시간을 가져오는 함수 (서버모듈에서 실행)
  18. * @return 시분초 6자리 String
  19. */
  20. static public String getCurrentTime() {
  21. java.util.Date date = new java.util.Date();
  22. SimpleDateFormat dateFormat = new SimpleDateFormat("HHmmss");
  23. return dateFormat.format(date);
  24. }
  25. /**
  26. * @Title 현재 SHIFT 를 가져오는 함수
  27. * @return 1 자리 String
  28. */
  29. static public String getShift(String SrcDate) {
  30. String shift = null;
  31. int hhmi = Integer.parseInt(SrcDate.substring(8, 11));
  32. if (hhmi > 800 && hhmi < 1600) {
  33. shift = "1";
  34. } else if (hhmi > 1600 && hhmi < 2400) {
  35. shift = "2";
  36. } else {
  37. shift = "3";
  38. }
  39. return shift;
  40. }
  41. /**
  42. * @Title 사용자가 입력한 날짜가 올바른지 체크하는 함수
  43. * @param src
  44. * 사용자가 입력한 8자리 년월일
  45. * @return 날짜가 올바른경우 true, 올바르지않은 경우 false를 return
  46. */
  47. static public boolean dateValid(String src) {
  48. int year = 0;
  49. int month = 0;
  50. int day = 0;
  51. if (src.length() != 8)
  52. return false;
  53. try {
  54. year = Integer.parseInt(src.substring(0, 4));
  55. month = Integer.parseInt(src.substring(4, 6));
  56. day = Integer.parseInt(src.substring(6));
  57. } catch (Exception e) {
  58. return false;
  59. }
  60. // 윤년 Flag
  61. boolean flag = false;
  62. // 입력받은 년도 윤년인지 체크
  63. if (year % 4 == 0) {
  64. flag = true;
  65. if (year % 100 == 0) {
  66. flag = false;
  67. if (year % 400 == 0) {
  68. flag = true;
  69. }
  70. }
  71. }
  72. int dayArray[] = new int[12];
  73. {
  74. dayArray[0] = 31;
  75. dayArray[1] = (flag) ? 29 : 28;
  76. dayArray[2] = 31;
  77. dayArray[3] = 30;
  78. dayArray[4] = 31;
  79. dayArray[5] = 30;
  80. dayArray[6] = 31;
  81. dayArray[7] = 31;
  82. dayArray[8] = 30;
  83. dayArray[9] = 31;
  84. dayArray[10] = 30;
  85. dayArray[11] = 31;
  86. }
  87. if (month < 1 || month > 12)
  88. return false;
  89. if (day < 1 || day > dayArray[month - 1])
  90. return false;
  91. return true;
  92. }
  93. static public String getCalendarDate(Calendar calendar) {
  94. if (calendar == null) {
  95. return "";
  96. } else {
  97. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
  98. java.util.Date date = calendar.getTime();
  99. return dateFormat.format(date);
  100. }
  101. }
  102. static public Calendar getDateCalendar(String date) {
  103. Calendar calendar = Calendar.getInstance(Locale.KOREA);
  104. calendar.set(Integer.parseInt(date.substring(0, 4)), Integer
  105. .parseInt(date.substring(4, 6)) - 1, Integer.parseInt(date
  106. .substring(6)));
  107. return calendar;
  108. }
  109. static public int getDayOfWeek(java.util.Date date) {
  110. String weekdays[] = (new DateFormatSymbols()).getShortWeekdays();
  111. String weekday = (new SimpleDateFormat("E")).format(date);
  112. for (int i = 1; i <= weekdays.length; ++i) {
  113. if (weekday.equals(weekdays[i]))
  114. return i;
  115. }
  116. return -1;
  117. }
  118. public static int BetweenDateCnt(String sFDate, String sTDate) {
  119. int iLoopCnt = 1;
  120. int iFYear = Integer.parseInt(sFDate.substring(0, 4));
  121. int iFMonth = Integer.parseInt(sFDate.substring(4, 6));
  122. int iFDay = Integer.parseInt(sFDate.substring(6, 8));
  123. int iTYear = Integer.parseInt(sTDate.substring(0, 4));
  124. int iTMonth = Integer.parseInt(sTDate.substring(4, 6));
  125. int iTDay = Integer.parseInt(sTDate.substring(6, 8));
  126. double dFDate = Double.parseDouble(sFDate.substring(0, 8));
  127. double dTDate = Double.parseDouble(sTDate.substring(0, 8));
  128. String sYear = null;
  129. String sMonth = null;
  130. String sDay = null;
  131. String sTmpDate = null;
  132. if (dFDate == dTDate)
  133. return 1;
  134. if (dFDate < dTDate) {
  135. iLoopCnt = 0;
  136. while (dFDate <= dTDate) {
  137. iFDay++;
  138. sYear = Integer.toString(iFYear);
  139. sMonth = Integer.toString(iFMonth);
  140. sDay = Integer.toString(iFDay);
  141. if (sMonth.length() == 1)
  142. sMonth = "0" + Integer.toString(iFMonth);
  143. if (sDay.length() == 1)
  144. sDay = "0" + Integer.toString(iFDay);
  145. sTmpDate = sYear + sMonth + sDay;
  146. if (dateValid(sTmpDate) == false) {
  147. iFDay = 1;
  148. iFMonth++;
  149. if (iFMonth > 12) {
  150. iFMonth = 1;
  151. iFYear++;
  152. }
  153. }
  154. sYear = Integer.toString(iFYear);
  155. sMonth = Integer.toString(iFMonth);
  156. sDay = Integer.toString(iFDay);
  157. if (sMonth.length() == 1)
  158. sMonth = "0" + Integer.toString(iFMonth);
  159. if (sDay.length() == 1)
  160. sDay = "0" + Integer.toString(iFDay);
  161. sTmpDate = sYear + sMonth + sDay;
  162. dFDate = Double.parseDouble(sTmpDate);
  163. iLoopCnt++;
  164. }
  165. } else {
  166. iLoopCnt = 0;
  167. while (dTDate <= dFDate) {
  168. iTDay++;
  169. sYear = Integer.toString(iTYear);
  170. sMonth = Integer.toString(iTMonth);
  171. sDay = Integer.toString(iTDay);
  172. if (sMonth.length() == 1)
  173. sMonth = "0" + Integer.toString(iTMonth);
  174. if (sDay.length() == 1)
  175. sDay = "0" + Integer.toString(iTDay);
  176. sTmpDate = sYear + sMonth + sDay;
  177. if (dateValid(sTmpDate) == false) {
  178. iTDay = 1;
  179. iTMonth++;
  180. if (iTMonth > 12) {
  181. iTMonth = 1;
  182. iTYear++;
  183. }
  184. }
  185. sYear = Integer.toString(iTYear);
  186. sMonth = Integer.toString(iTMonth);
  187. sDay = Integer.toString(iTDay);
  188. if (sMonth.length() == 1)
  189. sMonth = "0" + Integer.toString(iTMonth);
  190. if (sDay.length() == 1)
  191. sDay = "0" + Integer.toString(iTDay);
  192. sTmpDate = sYear + sMonth + sDay;
  193. dTDate = Double.parseDouble(sTmpDate);
  194. iLoopCnt++;
  195. }
  196. iLoopCnt = iLoopCnt * -1;
  197. }
  198. return iLoopCnt;
  199. }
  200. public static int BetweenMonthCnt(String sFDate, String sTDate) {
  201. int iDteCnt = 1;
  202. int iFYear = Integer.parseInt(sFDate.substring(0, 4));
  203. int iFMonth = Integer.parseInt(sFDate.substring(4, 6));
  204. int iTYear = Integer.parseInt(sTDate.substring(0, 4));
  205. int iTMonth = Integer.parseInt(sTDate.substring(4, 6));
  206. double dFDate = Double.parseDouble(sFDate.substring(0, 6));
  207. double dTDate = Double.parseDouble(sTDate.substring(0, 6));
  208. String sYear = null;
  209. String sMonth = null;
  210. String sTmpMonth = null;
  211. if (dFDate == dTDate)
  212. return 1;
  213. if (dFDate < dTDate) {
  214. iDteCnt = 0;
  215. while (dFDate <= dTDate) {
  216. iFMonth++;
  217. if (iFMonth > 12) {
  218. iFMonth = 1;
  219. iFYear++;
  220. }
  221. sYear = Integer.toString(iFYear);
  222. sMonth = Integer.toString(iFMonth);
  223. if (sMonth.length() == 1)
  224. sMonth = "0" + Integer.toString(iFMonth);
  225. sTmpMonth = sYear + sMonth;
  226. dFDate = Double.parseDouble(sTmpMonth);
  227. iDteCnt++;
  228. }
  229. } else {
  230. iDteCnt = 0;
  231. while (dTDate <= dFDate) {
  232. iTMonth++;
  233. if (iTMonth > 12) {
  234. iTMonth = 1;
  235. iTYear++;
  236. }
  237. sYear = Integer.toString(iTYear);
  238. sMonth = Integer.toString(iTMonth);
  239. if (sMonth.length() == 1)
  240. sMonth = "0" + Integer.toString(iTMonth);
  241. sTmpMonth = sYear + sMonth;
  242. dTDate = Double.parseDouble(sTmpMonth);
  243. iDteCnt++;
  244. }
  245. iDteCnt = iDteCnt * -1;
  246. }
  247. return iDteCnt;
  248. }
  249. public static int BetweenYearCnt(String sFDate, String sTDate) {
  250. int iDteCnt = 1;
  251. int iFYear = Integer.parseInt(sFDate.substring(0, 4));
  252. int iTYear = Integer.parseInt(sTDate.substring(0, 4));
  253. double dFDate = Double.parseDouble(sFDate.substring(0, 4));
  254. double dTDate = Double.parseDouble(sTDate.substring(0, 4));
  255. String sYear = null;
  256. // String sMonth = null;
  257. // String sTmpMonth = null;
  258. if (dFDate == dTDate)
  259. return 1;
  260. if (dFDate < dTDate) {
  261. iDteCnt = 0;
  262. while (dFDate <= dTDate) {
  263. iFYear++;
  264. sYear = Integer.toString(iFYear);
  265. dFDate = Double.parseDouble(sYear);
  266. iDteCnt++;
  267. }
  268. } else {
  269. iDteCnt = 0;
  270. while (dTDate <= dFDate) {
  271. iTYear++;
  272. sYear = Integer.toString(iTYear);
  273. dTDate = Double.parseDouble(sYear);
  274. iDteCnt++;
  275. }
  276. iDteCnt = iDteCnt * -1;
  277. }
  278. return iDteCnt;
  279. }
  280. public static String AddDateFunc(String sDate, int iDteCnt) {
  281. int iLoopCnt = 1;
  282. int iYear = Integer.parseInt(sDate.substring(0, 4));
  283. int iMonth = Integer.parseInt(sDate.substring(4, 6));
  284. int iDay = Integer.parseInt(sDate.substring(6, 8));
  285. String sYear = null;
  286. String sMonth = null;
  287. String sDay = null;
  288. String sTmpDate = null;
  289. if (iDteCnt == 0)
  290. return sDate;
  291. if (iDteCnt > 0) {
  292. iLoopCnt = 1;
  293. while (iLoopCnt <= iDteCnt) {
  294. iDay++;
  295. sYear = Integer.toString(iYear);
  296. sMonth = Integer.toString(iMonth);
  297. sDay = Integer.toString(iDay);
  298. if (sMonth.length() == 1)
  299. sMonth = "0" + Integer.toString(iMonth);
  300. if (sDay.length() == 1)
  301. sDay = "0" + Integer.toString(iDay);
  302. sTmpDate = sYear + sMonth + sDay;
  303. if (dateValid(sTmpDate) == false) {
  304. iDay = 1;
  305. iMonth++;
  306. if (iMonth > 12) {
  307. iMonth = 1;
  308. iYear++;
  309. }
  310. }
  311. sYear = Integer.toString(iYear);
  312. sMonth = Integer.toString(iMonth);
  313. sDay = Integer.toString(iDay);
  314. if (sMonth.length() == 1)
  315. sMonth = "0" + Integer.toString(iMonth);
  316. if (sDay.length() == 1)
  317. sDay = "0" + Integer.toString(iDay);
  318. sTmpDate = sYear + sMonth + sDay;
  319. iLoopCnt++;
  320. }
  321. } else {
  322. iLoopCnt = 1;
  323. iDteCnt = iDteCnt * -1;
  324. while (iLoopCnt <= iDteCnt) {
  325. iDay--;
  326. sYear = Integer.toString(iYear);
  327. sMonth = Integer.toString(iMonth);
  328. sDay = Integer.toString(iDay);
  329. if (sMonth.length() == 1)
  330. sMonth = "0" + Integer.toString(iMonth);
  331. if (sDay.length() == 1)
  332. sDay = "0" + Integer.toString(iDay);
  333. if (iDay == 0) {
  334. iMonth--;
  335. if (iMonth == 0) {
  336. iMonth = 12;
  337. iYear--;
  338. }
  339. for (int il = 27; il <= 32; il++) {
  340. sYear = Integer.toString(iYear);
  341. sMonth = Integer.toString(iMonth);
  342. sDay = Integer.toString(il);
  343. if (sMonth.length() == 1)
  344. sMonth = "0" + Integer.toString(iMonth);
  345. if (sDay.length() == 1)
  346. sDay = "0" + Integer.toString(il);
  347. sTmpDate = sYear + sMonth + sDay;
  348. if (dateValid(sTmpDate) == false) {
  349. iDay = il - 1;
  350. sDay = Integer.toString(iDay);
  351. if (sDay.length() == 1)
  352. sDay = "0" + Integer.toString(il);
  353. break;
  354. }
  355. }
  356. }
  357. sTmpDate = sYear + sMonth + sDay;
  358. iLoopCnt++;
  359. }
  360. }
  361. return sTmpDate;
  362. }
  363. public static String AddMonthFunc(String sMonth, int iDteCnt) {
  364. int iLoopCnt = 1;
  365. int iYear = Integer.parseInt(sMonth.substring(0, 4));
  366. int iMonth = Integer.parseInt(sMonth.substring(4, 6));
  367. String sYear = null;
  368. String sTmpMonth = null;
  369. if (iDteCnt == 0)
  370. return sMonth.substring(0, 6);
  371. if (iDteCnt > 0) {
  372. iLoopCnt = 1;
  373. while (iLoopCnt <= iDteCnt) {
  374. iMonth++;
  375. if (iMonth > 12) {
  376. iMonth = 1;
  377. iYear++;
  378. }
  379. sYear = Integer.toString(iYear);
  380. sMonth = Integer.toString(iMonth);
  381. if (sMonth.length() == 1)
  382. sMonth = "0" + Integer.toString(iMonth);
  383. sTmpMonth = sYear + sMonth;
  384. iLoopCnt++;
  385. }
  386. } else {
  387. iLoopCnt = 1;
  388. iDteCnt = iDteCnt * -1;
  389. while (iLoopCnt <= iDteCnt) {
  390. iMonth--;
  391. if (iMonth == 0) {
  392. iMonth = 12;
  393. iYear--;
  394. }
  395. sYear = Integer.toString(iYear);
  396. sMonth = Integer.toString(iMonth);
  397. if (sMonth.length() == 1)
  398. sMonth = "0" + Integer.toString(iMonth);
  399. sTmpMonth = sYear + sMonth;
  400. iLoopCnt++;
  401. }
  402. }
  403. return sTmpMonth;
  404. }
  405. public static String AddYearFunc(String sYear, int iDteCnt) {
  406. int iLoopCnt = 1;
  407. int iYear = Integer.parseInt(sYear.substring(0, 4));
  408. if (iDteCnt == 0)
  409. return sYear.substring(0, 4);
  410. if (iDteCnt > 0) {
  411. iLoopCnt = 1;
  412. while (iLoopCnt <= iDteCnt) {
  413. iYear++;
  414. sYear = Integer.toString(iYear);
  415. iLoopCnt++;
  416. }
  417. } else {
  418. iLoopCnt = 1;
  419. iDteCnt = iDteCnt * -1;
  420. while (iLoopCnt <= iDteCnt) {
  421. iYear--;
  422. sYear = Integer.toString(iYear);
  423. iLoopCnt++;
  424. }
  425. }
  426. return sYear;
  427. }
  428. public static String Addyyyymmdd(String sYYYYMMDD, int iDteCnt) {
  429. String sTmpDate = sYYYYMMDD;
  430. if (iDteCnt != 0) {
  431. int iYear = Integer.parseInt(sYYYYMMDD.substring(0, 4));
  432. String sMonth = sYYYYMMDD.substring(4, 6);
  433. String sDay = sYYYYMMDD.substring(6, 8);
  434. sYYYYMMDD = Integer.toString(iYear + iDteCnt);
  435. sTmpDate = sYYYYMMDD + sMonth + sDay;
  436. }
  437. return sTmpDate;
  438. }
  439. public static String FromDateToDate(int day) {
  440. Calendar cal = getDateCalendar(PosDateFormat.getCurrentDate());
  441. cal.add(Calendar.DATE, day);
  442. return PosDateFormat.getCalendarDate(cal);
  443. }
  444. /**
  445. * @Title 몽앴珂쇌삿혤겯늴斤口,TL
  446. * @return 1 String
  447. */
  448. static public String getShiftT(String SrcDate) {
  449. String shift = null;
  450. int hhmi = Integer.parseInt(SrcDate.substring(8, 12));
  451. if (hhmi > 800 && hhmi < 1600) {
  452. shift = "1";
  453. } else if (hhmi > 1600 && hhmi < 2400) {
  454. shift = "2";
  455. } else {
  456. shift = "3";
  457. }
  458. return shift;
  459. }
  460. }