티스토리 뷰
728x90
어려운 건 아니지만.. (어렵나?;;)
그때그때마다 찾거나 만들어 쓸려면 귀찮은 것들을 나름 유용하게 정리해놓은 코드이다
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;
public class DateUtil {
/**
* 현재 년월 - YYYYMM
*/
public static String getMonth() {
String month;
Calendar cal = Calendar.getInstance(Locale.getDefault());
StringBuffer buf = new StringBuffer();
buf.append(Integer.toString(cal.get(Calendar.YEAR)));
month = Integer.toString(cal.get(Calendar.MONTH) + 1);
if (month.length() == 1)
month = "0" + month;
buf.append(month);
return buf.toString();
}
/**
* 현재 년월일 - YYYYMMDD
*/
public static String getDate() {
String month, day;
Calendar cal = Calendar.getInstance(Locale.getDefault());
StringBuffer buf = new StringBuffer();
buf.append(Integer.toString(cal.get(Calendar.YEAR)));
month = Integer.toString(cal.get(Calendar.MONTH) + 1);
if (month.length() == 1)
month = "0" + month;
day = Integer.toString(cal.get(Calendar.DATE));
if (day.length() == 1)
day = "0" + day;
buf.append(month);
buf.append(day);
return buf.toString();
}
/**
* 현재 시간 - HHMISS
*/
public static String getTime() {
String hour, min, sec;
Calendar cal = Calendar.getInstance(Locale.getDefault());
StringBuffer buf = new StringBuffer();
hour = Integer.toString(cal.get(Calendar.HOUR_OF_DAY));
if (hour.length() == 1)
hour = "0" + hour;
min = Integer.toString(cal.get(Calendar.MINUTE));
if (min.length() == 1)
min = "0" + min;
sec = Integer.toString(cal.get(Calendar.SECOND));
if (sec.length() == 1)
sec = "0" + sec;
buf.append(hour);
buf.append(min);
buf.append(sec);
return buf.toString();
}
/**
* 특정날짜에 일자를 더한 값
*
* @param DateTime
* YYMMDDHHMMSS
* @param plusDay
* 더할 일자
* @return 특정날짜에 일자를 더한 값
*/
public static String getAddDay(String DateTime, int plusDay) {
if (DateTime == null)
return "";
if (DateTime.length() == 8)
DateTime += "000000";
if (DateTime.equals("99991231")) {
return "99991231000000";
}
if (DateTime.equals("99991231235959")) {
return "99991231235959";
}
int y = Integer.parseInt(DateTime.substring(0, 4));
int m = Integer.parseInt(DateTime.substring(4, 6));
int d = Integer.parseInt(DateTime.substring(6, 8));
java.util.GregorianCalendar sToday = new java.util.GregorianCalendar();
sToday.set(y, m - 1, d);
sToday.add(GregorianCalendar.DAY_OF_MONTH, plusDay);
int day = sToday.get(GregorianCalendar.DAY_OF_MONTH);
int month = sToday.get(GregorianCalendar.MONTH) + 1;
int year = sToday.get(GregorianCalendar.YEAR);
String sNowyear = String.valueOf(year);
String sNowmonth = "";
String sNowday = "";
if (month < 10)
sNowmonth = "0" + String.valueOf(month);
else
sNowmonth = String.valueOf(month);
if (day < 10)
sNowday = "0" + String.valueOf(day);
else
sNowday = String.valueOf(day);
return sNowyear + sNowmonth + sNowday + DateTime.substring(8, 14);
}
/**
* 특정날짜에 달을 더한 값
*
* @param DateTime
* YYMMDDHHMMSS
* @param plusDay
* 더할 일자
* @return 특정날짜에 일자를 더한 값
*/
public static String getAddMonth(String DateTime, int plusMonth) {
if (DateTime == null)
return "";
if (DateTime.length() == 8)
DateTime += "000000";
if (DateTime.equals("99991231")) {
return "99991231000000";
}
if (DateTime.equals("99991231235959")) {
return "99991231235959";
}
int y = Integer.parseInt(DateTime.substring(0, 4));
int m = Integer.parseInt(DateTime.substring(4, 6));
int d = Integer.parseInt(DateTime.substring(6, 8));
java.util.GregorianCalendar sToday = new java.util.GregorianCalendar();
sToday.set(y, m - 1, d);
sToday.add(GregorianCalendar.MONTH, plusMonth);
int day = sToday.get(GregorianCalendar.DAY_OF_MONTH);
int month = sToday.get(GregorianCalendar.MONTH) + 1;
int year = sToday.get(GregorianCalendar.YEAR);
String sNowyear = String.valueOf(year);
String sNowmonth = "";
String sNowday = "";
if (month < 10)
sNowmonth = "0" + String.valueOf(month);
else
sNowmonth = String.valueOf(month);
if (day < 10)
sNowday = "0" + String.valueOf(day);
else
sNowday = String.valueOf(day);
return sNowyear + sNowmonth + sNowday + DateTime.substring(8, 14);
}
/**
* 어제 날짜 - YYYYMMDD
*/
public static String getYesterday() {
java.util.GregorianCalendar sToday = new java.util.GregorianCalendar();
sToday.add(GregorianCalendar.DAY_OF_MONTH, -1);
int day = sToday.get(GregorianCalendar.DAY_OF_MONTH);
int month = sToday.get(GregorianCalendar.MONTH) + 1;
int year = sToday.get(GregorianCalendar.YEAR);
String sNowyear = String.valueOf(year);
String sNowmonth = "";
String sNowday = "";
if (month < 10)
sNowmonth = "0" + String.valueOf(month);
else
sNowmonth = String.valueOf(month);
if (day < 10)
sNowday = "0" + String.valueOf(day);
else
sNowday = String.valueOf(day);
return sNowyear + sNowmonth + sNowday;
}
/**
* 내일 날짜 - YYYYMMDD
*/
public static String getTomorrow() {
java.util.GregorianCalendar sToday = new java.util.GregorianCalendar();
sToday.add(GregorianCalendar.DAY_OF_MONTH, 1);
int day = sToday.get(GregorianCalendar.DAY_OF_MONTH);
int month = sToday.get(GregorianCalendar.MONTH) + 1;
int year = sToday.get(GregorianCalendar.YEAR);
String sNowyear = String.valueOf(year);
String sNowmonth = "";
String sNowday = "";
if (month < 10)
sNowmonth = "0" + String.valueOf(month);
else
sNowmonth = String.valueOf(month);
if (day < 10)
sNowday = "0" + String.valueOf(day);
else
sNowday = String.valueOf(day);
return sNowyear + sNowmonth + sNowday;
}
/**
* 년도 1900 - 9999, 월 01 - 12, 일 01 - 31, 시 00 - 23, 분 00 - 59, 초 00 - 59
*
* @param param
* 검사 문자열
*
* @return 검사결과
*/
public static boolean isDate(String param) {
if (param == null || param.length() != 8)
return false;
try {
int year = Integer.parseInt(param.substring(0, 4));
int month = Integer.parseInt(param.substring(4, 6));
int day = Integer.parseInt(param.substring(6, 8));
if (year < 1900 || year > 9999)
return false;
if (month < 1 || month > 12)
return false;
if (day < 1 || day > 31)
return false;
return true;
} catch (Exception e) {
return false;
}
}
/**
* 년도 1900 - 9999, 월 01 - 12, 일 01 - 31, 시 00 - 23, 분 00 - 59, 초 00 - 59
*
* @param param
* 검사 문자열
*
* @return 검사결과
*/
public static boolean isTime(String param) {
if (param == null || param.length() != 6)
return false;
try {
int hour = Integer.parseInt(param.substring(0, 2));
int min = Integer.parseInt(param.substring(2, 4));
int sec = Integer.parseInt(param.substring(4, 6));
if (hour < 0 || hour > 23)
return false;
if (min < 0 || min > 59)
return false;
if (sec < 0 || sec > 59)
return false;
return true;
} catch (Exception e) {
return false;
}
}
/**
* 현재년월에서 다음 한달후 년월을 불러온다.
*
* @param month
* YYYY-MM 타입으로 년월
* @return 년월을 String으로 리턴한다.
*/
public static String getNextMonth(String month) {
String lsYear = null;
String lsMonth = null;
int liYear = Integer.parseInt(month.substring(0, 4));
int liMonth = Integer.parseInt(month.substring(5, 7));
if (liMonth == 12) {
liMonth = 1;
liYear++;
} else
liMonth++;
lsYear = liYear + "";
if (liMonth < 10)
lsMonth = "0" + liMonth;
else
lsMonth = "" + liMonth;
return lsYear + "-" + lsMonth;
}// end of getNextMonth
/**
* 현재년월에서 이전 한달전 년월을 불러온다.
*
* @param Month
* YYYYMM 타입으로 년월
* @return 년월을 String으로 리턴한다.
*/
public static String getPrevMonth(String Month) {
String lsYear = null;
String lsMonth = null;
int liYear = Integer.parseInt(Month.substring(0, 4));
int liMonth = Integer.parseInt(Month.substring(5, 7));
if (liMonth == 1) {
liMonth = 12;
liYear--;
} else
liMonth--;
lsYear = liYear + "";
if (liMonth < 10)
lsMonth = "0" + liMonth;
else
lsMonth = liMonth + "";
return lsYear + "-" + lsMonth;
}// end of getPrevMonth
/**
* @param date
* YYYY-MM-DD 포멧이나 YYYY-DD 포멧의 날짜
* @return 해당 달의 마지막 날
*/
public static String getLastDay(String date) {
return getLastDay(Integer.parseInt(date.substring(0, 4)), Integer
.parseInt(date.substring(5, 7)), false);
}
/**
* @param yyyy
* 년
* @param mm
* 월
* @return 해당 달의 마지막 날
*/
public static String getLastDay(String yyyy, String mm) {
return getLastDay(Integer.parseInt(yyyy), Integer.parseInt(mm), false);
}
/**
* @param yyyy
* 년
* @param mm
* 월
* @param isNowDate
* - 구하려는 달이 현재달일 경우 현재 날짜를 리턴할지
* @return 해당 달의 마지막 날
*/
public static String getLastDay(String yyyy, String mm, boolean isNowDate) {
return getLastDay(Integer.parseInt(yyyy), Integer.parseInt(mm),
isNowDate);
}
/**
* @param yyyy
* 년
* @param mm
* 월
* @param isNowDate
* - 구하려는 달이 현재달일 경우 현재 날짜를 리턴할지
* @return 해당 달의 마지막 날
*/
public static String getLastDay(int yyyy, int mm, boolean isNowDate) {
Calendar calendar = Calendar.getInstance();
String str = "";
if (isNowDate && mm == calendar.get(Calendar.MONTH) + 1) {
str = calendar.get(Calendar.DATE) + "";
} else {
calendar.set(yyyy, mm - 1, 1);
calendar.add(Calendar.MONTH, 1);
calendar.add(Calendar.DATE, -1);
int date = calendar.get(Calendar.DATE);
str = date < 10 ? "0" + date : date + "";
}
return str;
}
}
'프로그래밍 > Java' 카테고리의 다른 글
| [Java] DB(MySQL, Oracle, MS-SQL) 접속 (2) | 2011.09.21 |
|---|---|
| [Java] 메일 보내기 (0) | 2011.09.19 |
| [Java] URLConnection, URLEncoder, URLDecoder (2) | 2011.09.15 |
| [Java] 자바에서 웹문서 읽어오는 법 (0) | 2011.09.15 |
| [Java] 랜덤 점심 메뉴 고르기 프로그램 (2) | 2011.07.25 |


