| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498 |
- package xin.glue.ui.common;
- import java.text.DateFormatSymbols;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Locale;
- public class PosDateFormat {
- /**
- * @Title 현재 날짜를 가져오는 함수 (서버모듈에서 실행)
- * @return 년월일 8자리 String
- */
- static public String getCurrentDate() {
- java.util.Date date = new java.util.Date();
- SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
- return dateFormat.format(date);
- }
- /**
- * @Title 현재 시간을 가져오는 함수 (서버모듈에서 실행)
- * @return 시분초 6자리 String
- */
- static public String getCurrentTime() {
- java.util.Date date = new java.util.Date();
- SimpleDateFormat dateFormat = new SimpleDateFormat("HHmmss");
- return dateFormat.format(date);
- }
- /**
- * @Title 현재 SHIFT 를 가져오는 함수
- * @return 1 자리 String
- */
- static public String getShift(String SrcDate) {
- String shift = null;
- int hhmi = Integer.parseInt(SrcDate.substring(8, 11));
- if (hhmi > 800 && hhmi < 1600) {
- shift = "1";
- } else if (hhmi > 1600 && hhmi < 2400) {
- shift = "2";
- } else {
- shift = "3";
- }
- return shift;
- }
- /**
- * @Title 사용자가 입력한 날짜가 올바른지 체크하는 함수
- * @param src
- * 사용자가 입력한 8자리 년월일
- * @return 날짜가 올바른경우 true, 올바르지않은 경우 false를 return
- */
- static public boolean dateValid(String src) {
- int year = 0;
- int month = 0;
- int day = 0;
- if (src.length() != 8)
- return false;
- try {
- year = Integer.parseInt(src.substring(0, 4));
- month = Integer.parseInt(src.substring(4, 6));
- day = Integer.parseInt(src.substring(6));
- } catch (Exception e) {
- return false;
- }
- // 윤년 Flag
- boolean flag = false;
- // 입력받은 년도 윤년인지 체크
- if (year % 4 == 0) {
- flag = true;
- if (year % 100 == 0) {
- flag = false;
- if (year % 400 == 0) {
- flag = true;
- }
- }
- }
- int dayArray[] = new int[12];
- {
- dayArray[0] = 31;
- dayArray[1] = (flag) ? 29 : 28;
- dayArray[2] = 31;
- dayArray[3] = 30;
- dayArray[4] = 31;
- dayArray[5] = 30;
- dayArray[6] = 31;
- dayArray[7] = 31;
- dayArray[8] = 30;
- dayArray[9] = 31;
- dayArray[10] = 30;
- dayArray[11] = 31;
- }
- if (month < 1 || month > 12)
- return false;
- if (day < 1 || day > dayArray[month - 1])
- return false;
- return true;
- }
- static public String getCalendarDate(Calendar calendar) {
- if (calendar == null) {
- return "";
- } else {
- SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
- java.util.Date date = calendar.getTime();
- return dateFormat.format(date);
- }
- }
- static public Calendar getDateCalendar(String date) {
- Calendar calendar = Calendar.getInstance(Locale.KOREA);
- calendar.set(Integer.parseInt(date.substring(0, 4)), Integer
- .parseInt(date.substring(4, 6)) - 1, Integer.parseInt(date
- .substring(6)));
- return calendar;
- }
- static public int getDayOfWeek(java.util.Date date) {
- String weekdays[] = (new DateFormatSymbols()).getShortWeekdays();
- String weekday = (new SimpleDateFormat("E")).format(date);
- for (int i = 1; i <= weekdays.length; ++i) {
- if (weekday.equals(weekdays[i]))
- return i;
- }
- return -1;
- }
- public static int BetweenDateCnt(String sFDate, String sTDate) {
- int iLoopCnt = 1;
- int iFYear = Integer.parseInt(sFDate.substring(0, 4));
- int iFMonth = Integer.parseInt(sFDate.substring(4, 6));
- int iFDay = Integer.parseInt(sFDate.substring(6, 8));
- int iTYear = Integer.parseInt(sTDate.substring(0, 4));
- int iTMonth = Integer.parseInt(sTDate.substring(4, 6));
- int iTDay = Integer.parseInt(sTDate.substring(6, 8));
- double dFDate = Double.parseDouble(sFDate.substring(0, 8));
- double dTDate = Double.parseDouble(sTDate.substring(0, 8));
- String sYear = null;
- String sMonth = null;
- String sDay = null;
- String sTmpDate = null;
- if (dFDate == dTDate)
- return 1;
- if (dFDate < dTDate) {
- iLoopCnt = 0;
- while (dFDate <= dTDate) {
- iFDay++;
- sYear = Integer.toString(iFYear);
- sMonth = Integer.toString(iFMonth);
- sDay = Integer.toString(iFDay);
- if (sMonth.length() == 1)
- sMonth = "0" + Integer.toString(iFMonth);
- if (sDay.length() == 1)
- sDay = "0" + Integer.toString(iFDay);
- sTmpDate = sYear + sMonth + sDay;
- if (dateValid(sTmpDate) == false) {
- iFDay = 1;
- iFMonth++;
- if (iFMonth > 12) {
- iFMonth = 1;
- iFYear++;
- }
- }
- sYear = Integer.toString(iFYear);
- sMonth = Integer.toString(iFMonth);
- sDay = Integer.toString(iFDay);
- if (sMonth.length() == 1)
- sMonth = "0" + Integer.toString(iFMonth);
- if (sDay.length() == 1)
- sDay = "0" + Integer.toString(iFDay);
- sTmpDate = sYear + sMonth + sDay;
- dFDate = Double.parseDouble(sTmpDate);
- iLoopCnt++;
- }
- } else {
- iLoopCnt = 0;
- while (dTDate <= dFDate) {
- iTDay++;
- sYear = Integer.toString(iTYear);
- sMonth = Integer.toString(iTMonth);
- sDay = Integer.toString(iTDay);
- if (sMonth.length() == 1)
- sMonth = "0" + Integer.toString(iTMonth);
- if (sDay.length() == 1)
- sDay = "0" + Integer.toString(iTDay);
- sTmpDate = sYear + sMonth + sDay;
- if (dateValid(sTmpDate) == false) {
- iTDay = 1;
- iTMonth++;
- if (iTMonth > 12) {
- iTMonth = 1;
- iTYear++;
- }
- }
- sYear = Integer.toString(iTYear);
- sMonth = Integer.toString(iTMonth);
- sDay = Integer.toString(iTDay);
- if (sMonth.length() == 1)
- sMonth = "0" + Integer.toString(iTMonth);
- if (sDay.length() == 1)
- sDay = "0" + Integer.toString(iTDay);
- sTmpDate = sYear + sMonth + sDay;
- dTDate = Double.parseDouble(sTmpDate);
- iLoopCnt++;
- }
- iLoopCnt = iLoopCnt * -1;
- }
- return iLoopCnt;
- }
- public static int BetweenMonthCnt(String sFDate, String sTDate) {
- int iDteCnt = 1;
- int iFYear = Integer.parseInt(sFDate.substring(0, 4));
- int iFMonth = Integer.parseInt(sFDate.substring(4, 6));
- int iTYear = Integer.parseInt(sTDate.substring(0, 4));
- int iTMonth = Integer.parseInt(sTDate.substring(4, 6));
- double dFDate = Double.parseDouble(sFDate.substring(0, 6));
- double dTDate = Double.parseDouble(sTDate.substring(0, 6));
- String sYear = null;
- String sMonth = null;
- String sTmpMonth = null;
- if (dFDate == dTDate)
- return 1;
- if (dFDate < dTDate) {
- iDteCnt = 0;
- while (dFDate <= dTDate) {
- iFMonth++;
- if (iFMonth > 12) {
- iFMonth = 1;
- iFYear++;
- }
- sYear = Integer.toString(iFYear);
- sMonth = Integer.toString(iFMonth);
- if (sMonth.length() == 1)
- sMonth = "0" + Integer.toString(iFMonth);
- sTmpMonth = sYear + sMonth;
- dFDate = Double.parseDouble(sTmpMonth);
- iDteCnt++;
- }
- } else {
- iDteCnt = 0;
- while (dTDate <= dFDate) {
- iTMonth++;
- if (iTMonth > 12) {
- iTMonth = 1;
- iTYear++;
- }
- sYear = Integer.toString(iTYear);
- sMonth = Integer.toString(iTMonth);
- if (sMonth.length() == 1)
- sMonth = "0" + Integer.toString(iTMonth);
- sTmpMonth = sYear + sMonth;
- dTDate = Double.parseDouble(sTmpMonth);
- iDteCnt++;
- }
- iDteCnt = iDteCnt * -1;
- }
- return iDteCnt;
- }
- public static int BetweenYearCnt(String sFDate, String sTDate) {
- int iDteCnt = 1;
- int iFYear = Integer.parseInt(sFDate.substring(0, 4));
- int iTYear = Integer.parseInt(sTDate.substring(0, 4));
- double dFDate = Double.parseDouble(sFDate.substring(0, 4));
- double dTDate = Double.parseDouble(sTDate.substring(0, 4));
- String sYear = null;
- // String sMonth = null;
- // String sTmpMonth = null;
- if (dFDate == dTDate)
- return 1;
- if (dFDate < dTDate) {
- iDteCnt = 0;
- while (dFDate <= dTDate) {
- iFYear++;
- sYear = Integer.toString(iFYear);
- dFDate = Double.parseDouble(sYear);
- iDteCnt++;
- }
- } else {
- iDteCnt = 0;
- while (dTDate <= dFDate) {
- iTYear++;
- sYear = Integer.toString(iTYear);
- dTDate = Double.parseDouble(sYear);
- iDteCnt++;
- }
- iDteCnt = iDteCnt * -1;
- }
- return iDteCnt;
- }
- public static String AddDateFunc(String sDate, int iDteCnt) {
- int iLoopCnt = 1;
- int iYear = Integer.parseInt(sDate.substring(0, 4));
- int iMonth = Integer.parseInt(sDate.substring(4, 6));
- int iDay = Integer.parseInt(sDate.substring(6, 8));
- String sYear = null;
- String sMonth = null;
- String sDay = null;
- String sTmpDate = null;
- if (iDteCnt == 0)
- return sDate;
- if (iDteCnt > 0) {
- iLoopCnt = 1;
- while (iLoopCnt <= iDteCnt) {
- iDay++;
- sYear = Integer.toString(iYear);
- sMonth = Integer.toString(iMonth);
- sDay = Integer.toString(iDay);
- if (sMonth.length() == 1)
- sMonth = "0" + Integer.toString(iMonth);
- if (sDay.length() == 1)
- sDay = "0" + Integer.toString(iDay);
- sTmpDate = sYear + sMonth + sDay;
- if (dateValid(sTmpDate) == false) {
- iDay = 1;
- iMonth++;
- if (iMonth > 12) {
- iMonth = 1;
- iYear++;
- }
- }
- sYear = Integer.toString(iYear);
- sMonth = Integer.toString(iMonth);
- sDay = Integer.toString(iDay);
- if (sMonth.length() == 1)
- sMonth = "0" + Integer.toString(iMonth);
- if (sDay.length() == 1)
- sDay = "0" + Integer.toString(iDay);
- sTmpDate = sYear + sMonth + sDay;
- iLoopCnt++;
- }
- } else {
- iLoopCnt = 1;
- iDteCnt = iDteCnt * -1;
- while (iLoopCnt <= iDteCnt) {
- iDay--;
- sYear = Integer.toString(iYear);
- sMonth = Integer.toString(iMonth);
- sDay = Integer.toString(iDay);
- if (sMonth.length() == 1)
- sMonth = "0" + Integer.toString(iMonth);
- if (sDay.length() == 1)
- sDay = "0" + Integer.toString(iDay);
- if (iDay == 0) {
- iMonth--;
- if (iMonth == 0) {
- iMonth = 12;
- iYear--;
- }
- for (int il = 27; il <= 32; il++) {
- sYear = Integer.toString(iYear);
- sMonth = Integer.toString(iMonth);
- sDay = Integer.toString(il);
- if (sMonth.length() == 1)
- sMonth = "0" + Integer.toString(iMonth);
- if (sDay.length() == 1)
- sDay = "0" + Integer.toString(il);
- sTmpDate = sYear + sMonth + sDay;
- if (dateValid(sTmpDate) == false) {
- iDay = il - 1;
- sDay = Integer.toString(iDay);
- if (sDay.length() == 1)
- sDay = "0" + Integer.toString(il);
- break;
- }
- }
- }
- sTmpDate = sYear + sMonth + sDay;
- iLoopCnt++;
- }
- }
- return sTmpDate;
- }
- public static String AddMonthFunc(String sMonth, int iDteCnt) {
- int iLoopCnt = 1;
- int iYear = Integer.parseInt(sMonth.substring(0, 4));
- int iMonth = Integer.parseInt(sMonth.substring(4, 6));
- String sYear = null;
- String sTmpMonth = null;
- if (iDteCnt == 0)
- return sMonth.substring(0, 6);
- if (iDteCnt > 0) {
- iLoopCnt = 1;
- while (iLoopCnt <= iDteCnt) {
- iMonth++;
- if (iMonth > 12) {
- iMonth = 1;
- iYear++;
- }
- sYear = Integer.toString(iYear);
- sMonth = Integer.toString(iMonth);
- if (sMonth.length() == 1)
- sMonth = "0" + Integer.toString(iMonth);
- sTmpMonth = sYear + sMonth;
- iLoopCnt++;
- }
- } else {
- iLoopCnt = 1;
- iDteCnt = iDteCnt * -1;
- while (iLoopCnt <= iDteCnt) {
- iMonth--;
- if (iMonth == 0) {
- iMonth = 12;
- iYear--;
- }
- sYear = Integer.toString(iYear);
- sMonth = Integer.toString(iMonth);
- if (sMonth.length() == 1)
- sMonth = "0" + Integer.toString(iMonth);
- sTmpMonth = sYear + sMonth;
- iLoopCnt++;
- }
- }
- return sTmpMonth;
- }
- public static String AddYearFunc(String sYear, int iDteCnt) {
- int iLoopCnt = 1;
- int iYear = Integer.parseInt(sYear.substring(0, 4));
- if (iDteCnt == 0)
- return sYear.substring(0, 4);
- if (iDteCnt > 0) {
- iLoopCnt = 1;
- while (iLoopCnt <= iDteCnt) {
- iYear++;
- sYear = Integer.toString(iYear);
- iLoopCnt++;
- }
- } else {
- iLoopCnt = 1;
- iDteCnt = iDteCnt * -1;
- while (iLoopCnt <= iDteCnt) {
- iYear--;
- sYear = Integer.toString(iYear);
- iLoopCnt++;
- }
- }
- return sYear;
- }
- public static String Addyyyymmdd(String sYYYYMMDD, int iDteCnt) {
- String sTmpDate = sYYYYMMDD;
- if (iDteCnt != 0) {
- int iYear = Integer.parseInt(sYYYYMMDD.substring(0, 4));
- String sMonth = sYYYYMMDD.substring(4, 6);
- String sDay = sYYYYMMDD.substring(6, 8);
- sYYYYMMDD = Integer.toString(iYear + iDteCnt);
- sTmpDate = sYYYYMMDD + sMonth + sDay;
- }
- return sTmpDate;
- }
- public static String FromDateToDate(int day) {
- Calendar cal = getDateCalendar(PosDateFormat.getCurrentDate());
- cal.add(Calendar.DATE, day);
- return PosDateFormat.getCalendarDate(cal);
- }
- /**
- * @Title 몽앴珂쇌삿혤겯늴斤口,TL
- * @return 1 String
- */
- static public String getShiftT(String SrcDate) {
- String shift = null;
- int hhmi = Integer.parseInt(SrcDate.substring(8, 12));
- if (hhmi > 800 && hhmi < 1600) {
- shift = "1";
- } else if (hhmi > 1600 && hhmi < 2400) {
- shift = "2";
- } else {
- shift = "3";
- }
- return shift;
- }
- }
|