본문 바로가기

JAVA

[JAVA] 날짜 함수들을 이용한 몇가지 코딩.


	 public static boolean DateCheck(String dt){
	    	try{
	    		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
	    		format.setLenient(false); 
	    		format.parse(dt);	    		
	    	} catch (ParseException e) { return false; }
	    	catch ( IllegalArgumentException e ) { return false; }
	    	
	    	return true;
	    } 
	 
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		
		Calendar today = Calendar.getInstance( );  
		//인스턴스를 받아오면서 현재시간이 세팅됨.
		
		Date curdate = new Date (); //date클래스를 이용해 현재 날짜 구하기.
	    System.out.println(curdate);
	    today.setTime(curdate);//컬린더로만든 today에 현재날짜 세팅.
	    System.out.println(curdate);
	    
	    System.out.println("현재달의 마지막 날 : " +today.getActualMaximum(Calendar.DAY_OF_MONTH));
	    System.out.println();
	    //요일 출력.
	    SimpleDateFormat weekday = new SimpleDateFormat("EEE",Locale.ENGLISH);
	    System.out.println("현재 요일 : "+ weekday.format(today.getTime())+"day");
	    SimpleDateFormat weekday2 = new SimpleDateFormat("EEE");
	    System.out.println("현재 요일 : "+ weekday2.format(today.getTime())+"요일");
	    System.out.println();
	    
	    //특정 두 날짜의 차이를 구하기.	   
	    Calendar d1 = Calendar.getInstance();//오늘	    
	    Calendar d2 = Calendar.getInstance();
	    d2.set(2011,8,29);//지정일.
	    int count = 0;
	    
	    while (!d2.after(d1))
	    {
	    count++;
	    d2.add (Calendar.DATE,1); //하루씩 더해짐.

	    System.out.println(d2.get(Calendar.YEAR)+"년 "+(d2.get( Calendar.MONTH )+1)+"월 "+d2.get(Calendar.DATE)+"일" );
	    }
	    System.out.println ("지정일로부터 " + count + "일이 지났습니다.");
	    
	    //혹은
	    d2.set(2011,8,29);
	    System.out.println("지정일로부터 "+((d1.getTimeInMillis() - d2.getTimeInMillis())/(1000*60*60*24)+1) + "일 지났습니다");
	    System.out.println();
	    
	    //날짜 유효성 체크.	   
	    String dv = "2011-2-29";
	    if(DateCheck(dv)){
	    	System.out.println(dv + "는 유효한 날짜 입니다.");
	    }
	    else
	    	System.out.println(dv + "는 유효하지 않은 날짜 입니다.");
	    
	}



--->결과

Fri Oct 07 15:53:36 KST 2011
Fri Oct 07 15:53:36 KST 2011
현재달의 마지막 날 : 31

현재 요일 : Friday
현재 요일 : 금요일

2011년 9월 30일
2011년 10월 1일
2011년 10월 2일
2011년 10월 3일
2011년 10월 4일
2011년 10월 5일
2011년 10월 6일
2011년 10월 7일
2011년 10월 8일
지정일로부터 9일이 지났습니다.
지정일로부터 9일 지났습니다

2011-2-29는 유효하지 않은 날짜 입니다.