Monday, August 27, 2007
Java 자바로 타이머 Timer 만들기 소스, 스톱워치 Stopwatch 구현
자바에서 간단한 타이머를 만드는 소스 코드입니다. 사용자가 엔터 키를 누를 때까지 대기하고 있다가, Enter키를 누르면 그때까지의 경과 시간을 시분초 단위로 예를 들어 04:11:15 이렇게 화면에 출력합니다.
소스 파일명: Example.java
컴파일 및 실행 결과 화면:
맨 마지막의 실행 결과는 컴퓨터 내장 시계를, 이틀 뒤로 맞춘 후에 실행한 것입니다.
컵라면 타이머 (온라인 버전):
▶▶ 컵라면 타이머; 인터넷 요리용 타이머, 모래시계 Cooking Timer
스톱워치 (온라인 버전 스톱와치):
▶▶ 스톱워치, 초시계, 온라인 스톱와치, 100분의 1초 Stopwatch
시분초 단위 Timer 구현 자바 소스
소스 파일명: Example.java
import java.io.*;
public class Example {
static String timerBuffer; // 04:11:15 등의 경과 시간 문자열이 저장될 버퍼 정의
static int oldTime; // 타이머가 ON 되었을 때의 시각을 기억하고 있는 변수
public static void main(String[] args) {
stopwatch(1); // 1을 인수로 넣으면 타이머가 켜짐
System.out.println("Timer ON! 엔터 키를 누르면 종료합니다");
pause(); // 유저가 Enter키를 누를 때까지 무한정 대기
stopwatch(0); // 0을 넣으면 타이머가 꺼지고 시간 문자열을 버퍼에 설정
System.out.format("Timer OFF! 경과 시간: [%s]%n", timerBuffer); // 경과 시간 화면에 출력
}
public static void stopwatch(int onOff) {
if (onOff == 1) // 타이머 켜기
oldTime = (int) System.currentTimeMillis() / 1000;
if (onOff == 0) // 타이머 끄고, 시분초를 timerBuffer 에 저장
secToHHMMSS( ((int) System.currentTimeMillis() / 1000) - oldTime );
}
// 정수로 된 시간을 초단위(sec)로 입력 받아, "04:11:15" 등의 형식의 문자열로 시분초를 저장
public static void secToHHMMSS(int secs) {
int hour, min, sec;
sec = secs % 60;
min = secs / 60 % 60;
hour = secs / 3600;
timerBuffer = String.format("%02d:%02d:%02d", hour, min, sec);
}
public static void pause() {
try {
System.in.read();
} catch (IOException e) { }
}
}
public class Example {
static String timerBuffer; // 04:11:15 등의 경과 시간 문자열이 저장될 버퍼 정의
static int oldTime; // 타이머가 ON 되었을 때의 시각을 기억하고 있는 변수
public static void main(String[] args) {
stopwatch(1); // 1을 인수로 넣으면 타이머가 켜짐
System.out.println("Timer ON! 엔터 키를 누르면 종료합니다");
pause(); // 유저가 Enter키를 누를 때까지 무한정 대기
stopwatch(0); // 0을 넣으면 타이머가 꺼지고 시간 문자열을 버퍼에 설정
System.out.format("Timer OFF! 경과 시간: [%s]%n", timerBuffer); // 경과 시간 화면에 출력
}
public static void stopwatch(int onOff) {
if (onOff == 1) // 타이머 켜기
oldTime = (int) System.currentTimeMillis() / 1000;
if (onOff == 0) // 타이머 끄고, 시분초를 timerBuffer 에 저장
secToHHMMSS( ((int) System.currentTimeMillis() / 1000) - oldTime );
}
// 정수로 된 시간을 초단위(sec)로 입력 받아, "04:11:15" 등의 형식의 문자열로 시분초를 저장
public static void secToHHMMSS(int secs) {
int hour, min, sec;
sec = secs % 60;
min = secs / 60 % 60;
hour = secs / 3600;
timerBuffer = String.format("%02d:%02d:%02d", hour, min, sec);
}
public static void pause() {
try {
System.in.read();
} catch (IOException e) { }
}
}
스톱와치 / 타이머 테스트
컴파일 및 실행 결과 화면:
D:\Z>javac Example.java
D:\Z>java Example
Timer ON! 엔터 키를 누르면 종료합니다
Timer OFF! 경과 시간: [00:00:13]
D:\Z>java Example
Timer ON! 엔터 키를 누르면 종료합니다
Timer OFF! 경과 시간: [00:02:08]
D:\Z>java Example
Timer ON! 엔터 키를 누르면 종료합니다
Timer OFF! 경과 시간: [48:00:05]
D:\Z>
D:\Z>java Example
Timer ON! 엔터 키를 누르면 종료합니다
Timer OFF! 경과 시간: [00:00:13]
D:\Z>java Example
Timer ON! 엔터 키를 누르면 종료합니다
Timer OFF! 경과 시간: [00:02:08]
D:\Z>java Example
Timer ON! 엔터 키를 누르면 종료합니다
Timer OFF! 경과 시간: [48:00:05]
D:\Z>
맨 마지막의 실행 결과는 컴퓨터 내장 시계를, 이틀 뒤로 맞춘 후에 실행한 것입니다.
컵라면 타이머 (온라인 버전):
▶▶ 컵라면 타이머; 인터넷 요리용 타이머, 모래시계 Cooking Timer
스톱워치 (온라인 버전 스톱와치):
▶▶ 스톱워치, 초시계, 온라인 스톱와치, 100분의 1초 Stopwatch
tag: java
자바 | Java
<< Home