Calendar 클래스는 시스템에서 날짜와 시간정보를 가져온다.

 

Calendar 클래스는 추상클래스이기 때문에 직접 인스턴스를 생성할 수는 없다. 대신 static 메소드를 사용하여 Calendar 클래스를 구현한 Calendar 형 인스턴스를 반환한다. TimeZone에 따라 시간 표기가 다른 국가가 있기 때문이다. 직접 인스턴스를 생성하지 않지만, getInstance()를 통해서 인스턴스를 받으면 시간에 대한 정보를 사용 할 수 있다.

 

Calendar now1 = Calendar.getInstance(); // Calendar 의 클래스 메소드 getInstance를 사용해서 인스턴스를 받음

 

Calendar 형 참조변수 now1로 아래 예제 처럼 사용할 수 있다.

 

now1.get(Calenedar.YEAR)

- 년도

now1.get((Calenedar.MONTH)+1)

- 월

now1.get(Calenedar.DAY_OF_MONTH)

- 일

 

다양한 Calendar 클래스 상수들이 정의되어 있다. javadoc에서 찾아보자. 년, 월, 일, 시, 분, 초 뿐 아니라 다양한 시간관련 정보를 사용할 수 있다.

 

Calendar 클래스는 20년 넘게 사용되고 있으니 여러가지를 시도해보자. JDK는 내용이 방대해서 하나하나 다 외울 수가 없다. 필요할 때 마다 찾아서 쓸 수 있는 센스와 응용력이 필요하다.

 

아래는 Swing GUI을 사용한 Calendar 예제다.

import java.awt.Font;
import java.util.Calendar;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class CalendarEX extends JFrame{
	Font f1;
	
	CalendarEX(){
		f1 = new Font("배달의민족 도현",Font.PLAIN,20);
		
		//JLabel1
		Calendar now1 = Calendar.getInstance();
		
		JLabel lb1 = new JLabel();
		lb1.setBounds(100, 100, 300, 40);
		lb1.setFont(f1);
		String t1 ="오늘날짜: " + now1.get(Calendar.YEAR) + " 년 " +
						(now1.get(Calendar.MONTH)+1) + " 월 " + now1.get(Calendar.DAY_OF_MONTH) + " 일";
		lb1.setText(t1);
		
		//JLable2
		JLabel lb2 = new JLabel();
		lb2.setBounds(100, 150, 300, 40);
		lb2.setFont(f1);
		String t2 ="지금시각 " + now1.get(Calendar.HOUR_OF_DAY) + "시 " + now1.get(Calendar.MINUTE) + "분 " +
		             now1.get(Calendar.SECOND) + "초 이다.";
		lb2.setText(t2);
		
		
		// JTextField
		JTextField tf1 = new JTextField();
		tf1.setBounds(100, 200, 300, 40);
		tf1.setFont(f1);
		String t3 = " 1년중에 " + now1.get(Calendar.DAY_OF_YEAR) + "일이 지났다";
		tf1.setText(t3);
				
		
		// JFrame
		add(lb1);add(lb2);add(tf1);
		setTitle("Calendar Example");
		setSize(500,400);
		setLayout(null);
		setVisible(true);
	}

	public static void main(String[] args) {
		new CalendarEX();
	}
}

실행화면

*자바8 캘린더 클래스

 

 

Calendar (Java Platform SE 8 )

Adds or subtracts (up/down) a single unit of time on the given time field without changing larger fields. For example, to roll the current date up by one day, you can achieve it by calling: roll(Calendar.DATE, true). When rolling on the year or Calendar.YE

docs.oracle.com

*스윙에 대한 포스트

 

자바 튜토리얼 (10-1) Java GUI Swing JFrame 윈도우창 만들기

자바의 GUI Swing 의 튜토리얼이다. AWT GUI 이후 오늘날까지 사용되고 있는 Java의 GUI 프레임웤이다. AWT가 먼저나왔으니까 AWT GUI를 먼저 해보던 상관은 없다. Swing 이 훨씬 쓸만하도록 설계되어 있다.

digiconfactory.tistory.com

 

공유하기

facebook twitter kakaoTalk kakaostory naver band