본문 바로가기
IT/Java

Thread(스레드) - 시간 출력

by Jeami 2013. 8. 7.
반응형


자바로 날짜를 출력하는 방법은 4가지 정도가 있습니다.

각각의 방법에 따라 편하신대로 사용하시면 좋을 것 같습니다.

Thread를 이용한 시간출력 로직입니다.



추천은 블로거에게 큰 힘이 됩니다(로그인 불필요) 양질의 정보로 보답하겠습니다.




package day06;

import java.sql.Timestamp;

import java.text.SimpleDateFormat;

import java.util.*;


class Time extends Thread{

public void run(){

int i=0;

while(true){

Date dt = new Date();

SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss") ;

String disp = sdf.format(dt);

i++;

System.out.println( i + "회 현재시간" + disp);

try{ Thread.sleep(2000);} catch(Exception ex){}

}//while end

}//run() end

}//class END


public class ExamThread {

public static void main(String[] args){

System.out.println("main 시작\n");

//2초 단위로 시간을 출력해보겠습니다.

Time t = new Time();

t.start();  // 실행함수

Timestamp time = new Timestamp(System.currentTimeMillis());

System.out.println("stamp\t" + time.toString());

System.out.println("\nmain 끝");

}//main end

}//class END




위의 코드 + join 사용한 2초 단위 시간 5회 출력

로직 설명 : "main 시작" 출력 후 1초 단위로 시간을 5회 출력합니다. 이후 "main 끝" 출력 후 빠져나오기

package day06;

import java.sql.Timestamp;

import java.text.SimpleDateFormat;

import java.util.*;


class Time extends Thread{

public void run(){

int i=0;

while(true){ //무한루프

Date dt = new Date();

SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss") ;

String disp = sdf.format(dt);

i++;

System.out.println( i + "회 현재시간" + disp);

try{ Thread.sleep(1000);} catch(Exception ex){}

}//while end

}//run() end

}//class END


public class ExamThread {

public static void main(String[] args){

System.out.println("main 시작\n");

Time t = new Time();

t.setDaemon(true); //join에서 지정한 만큼만 출력하고 끝내버리도록 해준다.

t.start();  // 실행함수인 run() 호출

try{ t.join(5000); } catch(Exception ex){}

Timestamp time = new Timestamp(System.currentTimeMillis());

System.out.println("stamp\t" + time.toString());

System.out.println("\nmain 끝");

}//main end

}//class END





Calendar 이용하기

package day06;

import java.sql.Timestamp;

import java.text.SimpleDateFormat;

import java.util.*;


class Time extends Thread{

public void run(){

int i=0;

while(true){ //무한루프

Date dt = new Date();

SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss") ;

String disp = sdf.format(dt);

Calendar cal = Calendar.getInstance();

int year = cal.get(Calendar.YEAR);

int month = cal.get(Calendar.MONTH);

int day = cal.get(Calendar.DAY_OF_MONTH);

i++;

//System.out.println( i + "회 현재시간" + disp );

//System.out.println( i + "회 현재시간" +year + "-" + (month+1) + "-" + day );

System.out.println( i + "회 현재시간"+  dt.toString() );

try{ Thread.sleep(1000);} catch(Exception ex){}

}//while end

}//run() end

}//class END


public class ExamThread {

public static void main(String[] args){

System.out.println("main 시작\n");

Time t = new Time();

t.setDaemon(true); //join에서 지정한 만큼만 출력하고 끝내버리도록 해준다.

t.start();  // 실행함수인 run() 호출

try{ t.join(5000); } catch(Exception ex){}

Timestamp time = new Timestamp(System.currentTimeMillis());

System.out.println("stamp\t" + time.toString());

System.out.println("\nmain 끝");

}//main end

}//class END




Timestamp 이용한 출력을 한 번 더 해보도록 하겠습니다.

위에서 사용된 부분과 비교해서 한번 보시면 될 것 같습니다.

package day06;

import java.sql.Timestamp;

import java.text.SimpleDateFormat;

import java.util.*;


class Time extends Thread{

public void run(){

int i=0;

while(true){ //무한루프

Date dt = new Date();

SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss") ;

String disp = sdf.format(dt);

Calendar cal = Calendar.getInstance();

int year = cal.get(Calendar.YEAR);

int month = cal.get(Calendar.MONTH);

int day = cal.get(Calendar.DAY_OF_MONTH);


Timestamp time = new Timestamp(System.currentTimeMillis());

i++;

//System.out.println( i + "회 현재시간" + disp );

//System.out.println( i + "회 현재시간" +year + "-" + (month+1) + "-" + day );

//System.out.println( i + "회 현재시간"+  dt.toString() );

System.out.println( i + "회 현재시간"+  time.toString() );

try{ Thread.sleep(1000);} catch(Exception ex){}

}//while end

}//run() end

}//class END


public class ExamThread {

public static void main(String[] args){

System.out.println("main 시작\n");

Time t = new Time();

t.setDaemon(true); //join에서 지정한 만큼만 출력하고 끝내버리도록 해준다.

t.start();  // 실행함수인 run() 호출

try{ t.join(5000); } catch(Exception ex){}

Timestamp time = new Timestamp(System.currentTimeMillis());

System.out.println("stamp\t" + time.toString());

System.out.println("\nmain 끝");

}//main end

}//class END



반응형

'IT > Java' 카테고리의 다른 글

두더지 게임 소스 2-1  (1) 2013.08.16
두더지 게임  (0) 2013.08.16
awt 기본(화면 띄우기)  (0) 2013.08.07
Interface(인터페이스)  (0) 2013.07.01
Java의 Generic(제너릭) 원리(간단정리)  (0) 2013.06.25

loading