Java 두 날짜 사이 월 - Java du naljja sai wol

두 날짜사이의 차이 계산

두날짜 사이의 시간 차이(ms)를 하루 동안의 ms(24시*60분*60초*1000밀리초) 로 나눈다.

java)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

package com.blog;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

public class BlogEx002 {

public static void main(String[] args) {

// TODO Auto-generated method stub

String strStartDate = "20161225";

String strEndDate = "20161201";

String strFormat = "yyyyMMdd";    //strStartDate 와 strEndDate 의 format

//SimpleDateFormat 을 이용하여 startDate와 endDate의 Date 객체를 생성한다.

SimpleDateFormat sdf = new SimpleDateFormat(strFormat);

try{

Date startDate = sdf.parse(strStartDate);

Date endDate = sdf.parse(strEndDate);

//두날짜 사이의 시간 차이(ms)를 하루 동안의 ms(24시*60분*60초*1000밀리초) 로 나눈다.

long diffDay = (startDate.getTime() - endDate.getTime()) / (24*60*60*1000);

System.out.println(diffDay+"일");

}catch(ParseException e){

e.printStackTrace();

}

}

}

cs

결과

Java 두 날짜 사이 월 - Java du naljja sai wol

두 날짜 사이의 개월 수 구하기

String szSDate = "20080302"; 
String szEDate = "20091202"; 

int sYear= Integer.parseInt(szSDate.substring(0,4)); 
int sMonth = Integer.parseInt(szSDate.substring(4,6)); 

int eYear = Integer.parseInt(szEDate.substring(0,4)); 
int eMonth = Integer.parseInt(szEDate.substring(4,6)); 

int month_diff = (eYear - sYear)* 12 + (eMonth - sMonth); 

System.out.println(month_diff); 

관련 글

댓글 영역

네비게이션

java8 LocalDate등을 사용하면 좀 더 쉽게 날짜차이를 구할 수 있지만 아직까지 java 1.7이하를 쓰고 있는 경우가 많다. 7이하버전에서 기준일로부터 금일까지 차이라던지 두 날짜의 값이 있을때 날짜간의 차이를 구해보겠다.

두 날짜간의 차이를 구하기 위해서는 해당하는 날짜를 최소단위인 초단위로 변경한 다음 연산을 하고 원하는 일자로 변경하면 되는데, 여기선 getTimeInMillis()를 사용한다. 해당 메소드는 1/1000초로 반환되기 때문에 초단위로 구하기 위해서는 1000으로 나눠주고 일자로 변경하기 위해서는 초로 변경한 값에 (24(시간) * 60(분) * 60(초))를 나눠준다.

오늘부터 특정일자의 차이를 구하기

public class CalTest {

	public static void main(String[] args) throws ParseException {
		Calendar getToday = Calendar.getInstance();
		getToday.setTime(new Date()); //금일 날짜
		
		String s_date = "2020-03-01";
		Date date = new SimpleDateFormat("yyyy-MM-dd").parse(s_date);
		Calendar cmpDate = Calendar.getInstance();
		cmpDate.setTime(date); //특정 일자
		
		long diffSec = (getToday.getTimeInMillis() - cmpDate.getTimeInMillis()) / 1000;
		long diffDays = diffSec / (24*60*60); //일자수 차이
		
		System.out.println(diffSec + "초 차이");
		System.out.println(diffDays + "일 차이");
	}

}
Java 두 날짜 사이 월 - Java du naljja sai wol

오늘은 포스팅일자인 2020-05-11일을 기준으로 결과값이다.

각 해당하는 일자를 ms으로 변경하여 차이값을 구하고 날짜 연산을 통해 차이 일수를 구할 수 있다.😙

22 May 2019 in Java

Java 8 에 추가된 java.time 패키지를 이용해서 계산하기

ChronoUnit 에 있는 여러가지 단위로 between 을 계산할 수 있다.

예제

import java.time.LocalDate;
import java.time.temporal.ChronoUnit;

public class Test {

    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        LocalDate compare_dt = today.minusDays(2);

        long diff = ChronoUnit.DAYS.between(today, compare_dt);

        // 차이 : -2
        System.out.println("차이 : " + diff);
    }
}