Day11 - 미션5

dike·2021년 11월 16일
0

한글시계

참고 https://hangulclock.today/#/main

1. 현재시간 받아오기

'자바 현재 시간'으로 검색

java.time.LocalTime

import java.time.LocalTime;

LocalTime now = new LocalTime.now();

int hour = now.getHour();
int minute = now.getMinute();

2. 한글시계 구현방식

  • 6 * 6 크기의 이차원 배열로 출력한다.
  • 한글시계는 해당하는 시간의 한글이 빛난다.
  • 이걸 콘솔에서는 어떤 기믹으로 구현할 것인가?
    배경을 구현하고, 해당하는 시간 부분을 한글로 출력한다.
  • 세가지 이차원 배열을 만든다.
  1. 배경
  2. 한글 양식
  3. 배경에 한글을 넣어 출력할 빈 배열
String[][] background; //배경
String[][] HangulForm // 한글 양식
String[][] HangulClockForm // 출력 배열

3. 한글 넣기

  • 출력배열에 배경을 넣는다.
  • switch-case를 이용하여 받아온 시간에 해당하는 한글을 출력배열에 넣는다.

4. 주기적으로 실행되게 하기

시간이 바뀔 때마다 한글시계도 바뀌게 만든다.

TimerTask task = new TimerTask() {
            @Override
            public void run() {
                //실행할 코드를 넣는다.
            }
        };
        Timer timer = new Timer();
        long delay = 0;
        long intervalPeriod = 5000;
        timer.scheduleAtFixedRate(task, delay, intervalPeriod);

위의 코드를 메소드 안에 써준다.
delay : 처음 실행할 때 대기시간(ms). 5000을 넣어주면 5초뒤에 실행된다.
intervalPeriod: 반복실행 주기(ms). 입력한 시간을 주기로 run() 안에 있는 코드가 반복된다.

TODO

  • switch-case를 enum 으로 바꾸기
    if-else를 사용하지 않기 위해 사용가능한 방법으로
    enum과 HashMap을 사용하는 방법이 있었다.
    enum을 이용하여 코드를 줄여보자.

  • 출력화면에서 글자색 바꾸기
    ANSI 코드를 사용하면 색을 바꿀 수 있다.

0개의 댓글