package com.eactive.eai.adapter.wca.util; 

import java.util.Calendar;

public class DateUtil 
{ 
    private Calendar o_calender; // 카렌다	
	public String s_date_sep = "-"; // 날짜구분
	public String s_time_sep = ":"; // 시간구분
	private final String[] DAY = {"일", "월", "화", "수", "목", "금", "토" }; // 요일
	
	public DateUtil() 
	{
		o_calender = Calendar.getInstance();		
	}
	
	
	/**
	 *   년도 반환
	 *     
	 *   @return int 반환된 년도
	 */  		
	public int getYear() 
	{ 
		return o_calender.get(Calendar.YEAR); 
	}


	/**
	 *   월 반환
	 *     
	 *   @return int 반환된 월
	 */  		
	public int getMonth() 
	{ 
		return o_calender.get(Calendar.MONTH)+1; 
	}
	

	/**
	 *   일 반환
	 *     
	 *   @return int 반환된 일
	 */  			
	public int getDay() 
	{ 				
		return o_calender.get(Calendar.DATE); 
	}
	

	/**
	 *   요일 반환
	 *     
	 *   @return int 반환된 요일
	 */  		
	public String getDayOfWeek() 
	{ 
		return DAY[o_calender.get(Calendar.DAY_OF_WEEK)-1]; 
	}
	

	/**
	 *   시 반환
	 *     
	 *   @return int 반환된 시
	 */  		
	public int getHour() 
	{ 
		return o_calender.get(Calendar.HOUR_OF_DAY); 
	}
	

	/**
	 *   분 반환
	 *     
	 *   @return int 반환된 분
	 */  		
	public int getMinute() 
	{ 
		return o_calender.get(Calendar.MINUTE); 
	}
	

	/**
	 *   초 반환
	 *     
	 *   @return int 반환된 초
	 */  		
	public int getSecond() 
	{ 
		return o_calender.get(Calendar.SECOND); 
	}
	
	/**
	 *   milli초 반환
	 *     
	 *   @return int 반환된 초
	 */  		
	public int getMilliSecond() 
	{ 
		return o_calender.get(Calendar.MILLISECOND); 
	}

	/**
	 *   년-월-일 반환	 
	 */ 
	public String getDate() 
	{ 
		return  MyUtil.leftPadString(String.valueOf(getYear()), 2, "0") + 
				MyUtil.leftPadString(String.valueOf(getMonth()), 2, "0") +
				MyUtil.leftPadString(String.valueOf(getDay()), 2, "0") ;
	}
	

	/**
	 *   시 분 초 반환
	 */  		
	public String getTime() 
	{
		//return getHour() + s_time_sep + getMinute() + s_time_sep + getSecond();		
		return  MyUtil.leftPadString(String.valueOf(getHour()), 2, "0") + 
				MyUtil.leftPadString(String.valueOf(getMinute()), 2, "0") +
				MyUtil.leftPadString(String.valueOf(getSecond()), 2, "0") ;
	}
	
	
	/**
	 *   시 분 초 반환
	 */  		
	public String getMilliTime() 
	{			
		return  MyUtil.leftPadString(String.valueOf(getHour()), 2, "0") + 
				MyUtil.leftPadString(String.valueOf(getMinute()), 2, "0") +
				MyUtil.leftPadString(String.valueOf(getSecond()), 2, "0") +
				MyUtil.leftPadString(String.valueOf(getMilliSecond()), 6, "0") ;
	}

	/**
	 *   년-월-일 시:분:초 반환
	 *
	 */ 
	 		
	public String getDateTime() 
	{
		return getDate() + " " + getTime();
	}
	
	public String getDateMilliTime() 
	{
		return getDate() + getTime() + MyUtil.leftPadString(String.valueOf(getMilliSecond()), 2, "0").substring(0,2) ;
	}
    
} 
