반응형
Notice
Recent Posts
Recent Comments
IT 일기장
[Java] 현재와 특정 날짜의 차이 본문
반응형
Date today = new Date();
String ago = "2021-09-02 08:52:00";
try {
Date ThreeMonthAgo = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ago);
long diff = today.getTime() - ThreeMonthAgo.getTime();
diff /= 1000 * 60 * 60 * 24;
diff /= 30;
System.out.println(diff + "개월 차이");
} catch (ParseException e) {
e.printStackTrace();
}
정체불명의 나누기 수식은 1000 (초) * 60 (분) * 60 (시간) * 24 (일) * 30 (월)
30을 분리하고 나눠서 계산한 이유는..
int test1 = 1000 * 60 * 60 * 24 * 30;
BigInteger test2 = new BigInteger("2592000000");
System.out.println("test1 : " + test1);
System.out.println("test1 double type : " + (double) test1);
System.out.println("test1 float type : " + (float) test1);
System.out.println("test2 : " + test2);
자리 수 초과로 음수 결과가 나온다
BigInteger는 게산기 두드려서 숫자를 때려넣은건데 굳이 쓸 이유가 있나
그래서 30은 그냥 따로나눴다
실무에서 활용하게 된다면.. 이런식으로 썼다
Date ThreeMonthAgo = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(ago);
long diff = today.getTime() - ThreeMonthAgo.getTime();
diff /= 1000 * 60 * 60 * 24;
diff /= 30;
if (diff >= 3) System.out.println(diff + "개월 이상 비밀번호를 변경하지 않으셨습니다.");
반응형
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java] 인기 검색어 기능 구현 - 1 (0) | 2021.12.25 |
---|---|
[Java] multipart request getParamter 안될 때 (0) | 2021.12.17 |
[Java] JD-GUI Decompiler (0) | 2021.12.16 |
[Java] 전체 혹은 페이지 URL 갖고오기 (0) | 2021.12.09 |
[Java] 한글 깨짐 테스트 코드 (0) | 2021.12.08 |
Comments