관리 메뉴

I LOVE EJ

Calendar.getInstance() 본문

Com Language/Java

Calendar.getInstance()

BeOne 2007. 8. 10. 18:15

java.util.Calendar

Calendar 클래스는 말 그대로 달력 기능을 제공하는 클래스로, 날짜와 관련된 많은 메소드를 제공한다. 하지만 실제적인 구현은 Calendar 클래스의 자식인 GregorianCalendar 클래스가 하고 있다.

     GregorianCalendar 클래스의 유용한 메소드

 

public int get(int field)

field에 해당하는 날짜를 int 값으로 반환한다. field Calendar 클래스에서 정의된 상수이다.

) get(Calendar.MONTH);  // 달력의 월을 반환한다.

 

public void set(int field, int value)

field에 해당하는 날짜를 value 값으로 바꾼다.

) set(Calendar.YEAR, 2000)  // 달력의 년을 2000년으로 바꾼다.

 

public final void set(int year, int month, int date)

public final void set(int year, int month, int date, int hour, int minute)

public final void set(int year,int month,int date,int hour,int minute,int second)

calendar의 날짜를 바꾼다.

 

 

public void add(int field, int amount);

 

field에 해당하는 날짜를 amount 만큼 증가시킨다.

 

  Calendar 클래스의 유용한 상수

 

YEAR, MONTH, DATE, HOUR, MINUTE, SECOND, MILLISECOND

각각 년, , , , , , 1/1000초를 나타낸다.

 

JANUARY(=0), FEBRUARY(=1), MARCH, APRIL, MAY,  JUNE,

JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER(=11)

1 ~ 12월을 차례로 나타낸다. 주의할 점은 0부터 시작된다는 것이다. 달력의 정확한 월을 알고자한다면 다음과 같이 해야한다.) get(Calendar.MONTH)+1

 

SUNDAY(=1), MONDAY(=2), TUESDAY, WEDNESDAY,

THURSDAY, FRIDAY, SATURDAY(=7)

각각의 요일을 나타낸다.

 

DAY_OF_WEEK

요일을 얻거나 바꾸자할 때 사용한다.

 

AM_PM

오전/오후를 말한다.

 

 

 

import java.util.*;

public class Calendar1{

  public static void main(String[] args){

    GregorianCalendar gc= new GregorianCalendar();

    String now = gc.get(Calendar.YEAR)+""

                +(gc.get(Calendar.MONTH)+1)+""

                +gc.get(Calendar.DATE)+""

                +gc.get(Calendar.HOUR)+""

                +gc.get(Calendar.MINUTE)+""

                +gc.get(Calendar.SECOND)+"."

                +gc.get(Calendar.MILLISECOND)+ "";

    System.out.println("현재 시간은 " + now +" 입니다.");

String months[] = {"1", "2", "3", "4","5", "6",

"7", "8","9", "10", "11", "12"};

 

Calendar calendar = Calendar.getInstance();

System.out.print("날짜 : "+calendar.get(Calendar.YEAR) + "+

months[calendar.get(Calendar.MONTH)]+" " + calendar.get(Calendar.DATE) + "");

 

gc.add(Calendar.DATE,10000);  

 

String future ="미래: "

                +gc.get(Calendar.YEAR)+""

                +(gc.get(Calendar.MONTH)+1)+""

                +gc.get(Calendar.DATE)+"";

    System.out.println(future);

 

ge.set(Calendar.HOUR, 22);

    ge.set(Calendar.MINUTE, 8);

    ge.set(Calendar.SECOND, 2);

 

    System.out.print("수정된 시간 : ");

    System.out.print(ge.get(Calendar.HOUR) + " ");

    System.out.print(ge.get(Calendar.MINUTE) + " ");

    System.out.println(ge.get(Calendar.SECOND) + "");

 

  }

} 

 

출력 결과

 

현재 시간은 2006년 11월 9 7206.110초입니다.

날짜: 2006년 11월 9

미래: 2029년10월13

  수정된 시간: 10시 8분 2

======================================================================================================

 

 

어떤 사람의 생일이 양력으로 9 16일이다. 2002 ~ 2020년 사이의 생일에 해당하는 요일을 출력해 보자.

 

Calendar3.java

 

import java.util.*;

public class Calendar3{

  public static void main(String[] args){

    GregorianCalendar gc= new GregorianCalendar();

    final char[] KOR_WEEK={'','','','','','',''};

 

    for(int i=2002;i<=2020;i++){

      gc.set(i, Calendar.SEPTEMBER, 16);

      char week=KOR_WEEK[gc.get(Calendar.DAY_OF_WEEK)-1];

      System.out.println(i+"년의 생일은 "+week+ "요일이다.");

    }

  }

}


 

출력 결과

 

2002년의 생일은 월요일이다.

2003년의 생일은 화요일이다.

...

2019년의 생일은 월요일이다.

2020년의 생일은 수요일이다.

 


 

 

참고로 Date 클래스도 날짜 관련 클래스이지만 대부분의 메소드들이 deprecated되었기 때문에 잘 사용되지 않는다.

 

13.5 GregorianCalendar 클래스

A       추상 클래스인 Calendar 클래스의 하위 클래스로서 태양력 달력에 관한 모든 정보를 제공

A       Calendar 클래스의 추상 메소드를 모두 구현하고 있다

A       생성자

GregorianCalendar()   // 현재의 날짜와 시간으로 객체를 생성

GregorianCalendar(int year, int month, int date)

GregorianCalendar(int year, int month, int date, int hour, int minute)

GregorianCalendar(int year, int month, int date, int hour, int minute, int sec)

 

A       메소드

boolean isLeapYear(int year)        year로 지정된 년도가 윤년이면 true를 반환

 

========================================================================================

 

import java.util.*;

 

class GregorianCalExam {

  public static void main(String args[]) {

    int year;

    String months[] = {

             "1", "2", "3", "4",

             "5", "6", "7", "8",

             "9", "10", "11", "12"}; 

 

    GregorianCalendar gcal = new GregorianCalendar();

    

    System.out.print("날짜 : ");

    System.out.print(gcal.get(Calendar.YEAR) + " ");

    System.out.print(months[gcal.get(Calendar.MONTH)]);

    System.out.println(" " + gcal.get(Calendar.DATE) + "");

    year = gcal.get(Calendar.YEAR);

 

    if(gcal.isLeapYear(year)) {

      System.out.println("시스템에 정의된 현재년도는 윤년입니다.");

    }

    else {

      System.out.println("시스템에 정의된 현재년도는 윤년이 아닙니다.");

    }

  }

}

 

 

 

 

출처 : http://cafe.naver.com/itea02.cafe

'Com Language > Java' 카테고리의 다른 글

Calendar() 달력출력하기  (0) 2007.08.10
Calendar 클래스  (0) 2007.08.10
데이터 저장공간 (배열, Collection, Map)  (0) 2007.08.10
Vector와 Hashtable  (0) 2007.08.10
Vector와 Hashtable  (0) 2007.08.10