본문 바로가기

국비지원_핀테크

11일차_ [java] 미니 실습 ( 사용 시간 계산기, 스탑워치 )

 

 

 

 

 

실습

미니 실습

 

package constructor;

public class MainClass {
	public static void main(String[] args) {
		TimeService ts = new TimeService();
		ts.display();
	}
}

MainClass 클래스

 

package constructor;

import java.text.SimpleDateFormat;
import java.util.Scanner;

public class TimeService {
	Scanner sc = new Scanner(System.in);
	TimeDTO DTO = new TimeDTO();
	SimpleDateFormat si = new SimpleDateFormat("yyyy년 MM월 dd일 aa hh시 mm분 ss초");
	String startTime, endTime;
	int useTime;
	
	// 기본 메뉴 출력
	public void display() {
		while(true) {
			System.out.println("1. 시작 시간 설정");
			System.out.println("2. 시작 시간 확인(년 월 일 시 분 초)");
			System.out.println("3. 종료 시간 설정");
			System.out.println("4. 종료 시간 확인(년 월 일 시 분 초)");
			System.out.println("5. 사용 시간 가져오기");
			System.out.print("선택 >>> ");
			int choice = sc.nextInt();
			
			switch(choice) {
			case 1: startTime(); break;
			case 2: showStart(); break;
			case 3: endTime(); break;
			case 4: showEnd(); break;
			case 5: useTime(); break;
			default : System.out.println("입력 오류!!!\n"); break;
			}
		}
	}
	// 시작 시간 설정
	private void startTime() {
		DTO.setStartTime(System.currentTimeMillis());
		System.out.println("시작 시간 설정 완료");
	}
	// 시작 시간 출력
	private void showStart() {
		startTime = si.format(DTO.getStartTime());
		System.out.println("시작 시간 : " + startTime);
	}
	// 종료 시간 설정
	private void endTime() {
		DTO.setEndTime(System.currentTimeMillis());
		System.out.println("종료 시간 설정 완료");
	}
	// 종료 시간 출력
	private void showEnd() {
		endTime = si.format(DTO.getEndTime());
		System.out.println("종료 시간 : " + endTime);
	}
	// 사용 시간 출력
	private void useTime() {
		// 시작시간이 종료시간보다 빠른 경우
		if ( DTO.getEndTime() < DTO.getStartTime() ) {
			System.out.println("시작 시간이 종료시간보다 빠를 수 없습니다.");
		}
		// 시작 시간이 설정되지 않은 경우
		else if ( DTO.getStartTime() == 0 ) {
			System.out.println("시작 시간을 설정해주세요");
		}
		// 종료 시간이 설정되지 않은 경우
		else if ( DTO.getEndTime() == 0 ) {
			System.out.println("종료 시간을 설정해주세요");
		}
		// 사용 시간 계산 후 출력
		else {
			double use = DTO.getEndTime() - DTO.getStartTime();
			useTime = (int)(use / 1000);
			System.out.println("사용 시간 : " + useTime + "초");
		}
	}
}

TimeService 클래스

 

package constructor;

public class TimeDTO {
	private long startTime, endTime;
	
	public long getStartTime() {
		return startTime;
	}
	public void setStartTime(long startTime) {
		this.startTime = startTime;
	}
	public long getEndTime() {
		return endTime;
	}
	public void setEndTime(long endTime) {
		this.endTime = endTime;
	}
}

TimeDTO 클래스

 

 

코드 실행
728x90