×
Crocus
공부한 내용을 정리하는 블로그로 시작한
Crocus는 2014년 1월 14일 부터 시작하여
현재 월 6만명, 총 2,101,710명의 방문자 수를 기록하고 있습니다.
Donation
이제 많은 사용자들이 이용하는 만큼
더 다양한 서비스 개발/제공을 위해 후원금을 모금하고자 합니다.
후원을 해주시는 분들은 Donators 명단에 성명, 후원금을 기입해드리며
Crocus 블로그가 아닌 다른 곳에 정리해둔 저만의 내용을 공유해 드리고자 합니다.
Account
예금주 : 고관우
신한은행 : 110-334-866541
카카오뱅크 : 3333-01-7888060

👉 후원 페이지 바로가기 Donators
익명 : 5000원(Crocus응원합니다.)
busyhuman: 5000원(유용한 지식 감사합니다.)
익명 : 5000원(알고리즘 학습러)
반응형
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.concurrent.TimeUnit;

class Subject {
   private static final int ONE_MIN = 60;
   private static final int ONE_HOUR = 3600;
   private static final int ONE_DAY = 86400;
   private static final int ONE_MONTH = 2592000;
   private static final int ONE_YEAR = 31104000;

   public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int testCase = Integer.parseInt(br.readLine());

        String today = br.readLine();
        DateFormat todayDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date todayDate = null;
        try {
            todayDate = todayDateFormat.parse(today);
        } catch (ParseException e) {
            System.out.println("Today format error.");
            return;
        }

        for(int i = 0 ; i < testCase; i ++) {
            String otherDay = br.readLine();
            DateFormat otherDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date otherDate = null;
            try {
                otherDate = otherDateFormat.parse(otherDay);
            } catch (ParseException e) {
                System.out.println("Other day format error.");
                continue;
            }

           // 해당 diff를 초단위로 변환
            long diffInMillies = todayDate.getTime() - otherDate.getTime();
            long second = TimeUnit.SECONDS.convert(diffInMillies, TimeUnit.MILLISECONDS);

           // 현재 시간 대비 작성된 내용이 얼마나 지났는지 표현
           if (0 <= second && second < ONE_MIN) {
                System.out.println("방금 전");
            } else if(ONE_MIN <= second && second < ONE_HOUR) {
                System.out.println(second / ONE_MIN + "분 전");
            } else if(ONE_HOUR <= second && second < ONE_DAY) {
                System.out.println(second / ONE_HOUR + "시간 전");
            } else if(ONE_DAY <= second && second < ONE_MONTH) {
                System.out.println(second / ONE_DAY + "일 전");
            } else if(ONE_MONTH <= second && second < ONE_YEAR) {
                System.out.println(second / ONE_MONTH + "개월 전");
            } else if(second >= ONE_YEAR) {
                DateFormat output = new SimpleDateFormat("yy년 M월 d일", Locale.KOREAN);
                ParsePosition pos = new ParsePosition(0);
                Date outTime = otherDateFormat.parse(otherDay, pos);
                String ans = output.format(outTime);
                System.out.println(ans);
            } else {
               System.out.println("error");
           }
        }
   }
}
반응형