자바

date.getTime()으로 시간 구하기

chantleman 2024. 7. 2. 13:00
Date date= new Date();
long time = date.getTime();

time은 1970년 1월 1일 00시부터 지난 시간을 ms단위로 출력됩니다.

 

그래서 1970년 1월 1일부터 몇 년, 며칠, 몇시간, 몇 분, 몇 초가 지났는지를 구하기 위해서는

time에 365일을 ms단위로 나타낸 값으로 나누었을 때 몫을 year에 넣고 

그 나머지값을 24시간을 ms단위로 나타낸 값으로 나누었을 때 몫을 day에 넣고

그 나머지값을 1시간을 ms단위로 나타낸 값으로 나누었을 때 몫을 hour에 넣고

그 나머지값을 60분을 ms단위로 나타낸 값으로 나누었을 때 몫을 min에 넣고
그 나머지값을 60초를 ms단위로 나타낸 값으로 나누었을 때 몫을 sec에 넣으면 됩니다.

 

package kr.or.ddit.homework;

import java.util.Date;

public class HomeWork01 {

	public static void main(String[] args) {
		Date date= new Date();
		long time = date.getTime();	
		System.out.println("time="+time);
	
		long secMS=1000;
		long minMS = 60*secMS;
		long hourMS=60*minMS;
		long dayMS=24*hourMS;
		long yearMS=365*dayMS;
		
        
		long year= time/yearMS;
		long day = time%yearMS/dayMS;
		long hour = time%yearMS%dayMS/hourMS;
		long min= time%yearMS%dayMS%hourMS/minMS;
		long sec= time%yearMS%dayMS%hourMS%minMS/secMS;
        System.out.println(year+"년"+day+"일"+hour+"시간"+min+"분"+sec+"초가 지났습니다.");
		
	}
}

 

 

%연산자 없이 구하기

 		 long sec=1000;
		 long min = sec*60;
		 long hour = min*60;
		 long day = hour*24;
		 long year = day*365;
		 
		 long years=time/year;
		 time = time - years*year;
		 
		 long days = time/day;
		 time=time-days*day;
		 
		 long hours = time/hour;
		 time = time-hours*hour;
		 
		 long mins = time/min;
		 time=time-mins*min;
		 
		 long secs=time/sec;
		 time=time-secs*sec;
		 
		 System.out.println(years+"년"+days+"일"+hours+"시간"+mins+"분"+secs+"초 지났습니다.");

'자바' 카테고리의 다른 글

String 타입 변환  (0) 2024.07.03
templates 설정  (0) 2024.07.03
데이터 타입  (0) 2024.07.02
eclipse 설정  (0) 2024.07.01
amazon jdk 설치  (1) 2024.07.01