-
[JAVA] 몇 초전 , 몇분전, 몇년전 구하기program_language 및 궁금한것/Java 2021. 4. 15. 20:17
public class Dateutil { public static void main(String[] args) { // 테스트를 위한 main메서드 // LocalDate localDate = LocalDate.now().minusDays(360); // LocalDateTime localDate = LocalDateTime.now().minusHours(1); // LocalDateTime localDate = LocalDateTime.now().minusSeconds(30); // LocalDateTime localDate = LocalDateTime.now().minusMonths(50); LocalDateTime localDate = LocalDateTime.of(2019, 11, 11, 18, 02); Date d = java.sql.Timestamp.valueOf(localDate); System.out.println("날짜 >> " +d); System.out.println(txtDate(d)); } public static final int SEC = 60; public static final int MIN = 60; public static final int HOUR = 24; public static final int DAY = 30; public static final int MONTH = 12; /** * x초전, x분전, x시간 전m, x일 전, x개월전, x년전 * @param 날짜 * @return 분 표시 * */ public static String txtDate(Date tempDate) { long curTime = System.currentTimeMillis(); long regTime = tempDate.getTime(); long diffTime = (curTime - regTime) / 1000; String msg = null; if (diffTime < SEC){ msg = diffTime + "초전"; } else if ((diffTime /= SEC) < MIN) { msg = diffTime + "분 전"; } else if ((diffTime /= MIN) < HOUR) { msg = (diffTime) + "시간 전"; } else if ((diffTime /= HOUR) < DAY) { msg = (diffTime) + "일 전"; } else if ((diffTime /= DAY) < MONTH) { msg = (diffTime) + "개월 전"; } else { SimpleDateFormat sdf = new SimpleDateFormat( "yyyy"); String curYear = sdf.format(curTime); String passYear = sdf.format(tempDate); int diffYear = Integer.parseInt(curYear) - Integer.parseInt(passYear); msg = diffYear + "년 전"; } return msg; } }
자바로 몇분전, 몇시간전 등 게시물 등록시간부터 현재 시간까지를 나타낼 수 있는 공통 클래스를 만들었다.
블로그를 참고하였으나 몇년전의 코드만 필요한 형태로 수정을 했다.
2019년의 게시글은 2021년 현재 시점에서 2년 전으로 표기되게 말이다.
코드를 가져다 그대로 사용하는 것을 넘어 수정해서 쓸수 있을만큼 성장했다는 생각이 들어 괜히 뿌듯한 날이다.
반응형'program_language 및 궁금한것 > Java' 카테고리의 다른 글
[JAVA] Scanner와 Buffered Reader의 차이점 (알고리즘) (0) 2021.08.03 [JAVA] 천단위 콤마 넣기 (0) 2021.04.19 [ JAVA ] 컴파일에러와 런타임에러의 차이 (0) 2021.03.30 [Java] JRE와 JDK의 차이점 (0) 2021.03.29 [Java] 자바 static을 지양하자 (0) 2019.09.27