개발을 하다보면 현재날짜와 지정날짜간의 차이를 구해야 하는 경우가 있다.

가령, 회사 플젝의 경우 현재 날짜와 24시간 이내에만 작업을 등록해야 하는 경우와 같다.


잡설 빼고 간단히 하자면 Date 메서드의 parse를 이용하면 된다.

parse는 YYYY/MM/DD HH:MM:SS 를 밀리세컨 단위로 변환시켜주는 함수이다.


YYYYMMDDHHMMSS라거나 기타 여러 커스텀 적인 날짜를 위의 함수를 이용하여 변환시켜주면 밀리세컨 단위의 결과값이 나온다.


아래의 예제를 보자.


//날짜 차이 구하는 부분 * 작업시작일과 작업마감일은 24시간 이내를 기준으로 한다.

var checkFirstStTime:String = sttime.substr(0,2); var checkSecondStTime:String = sttime.substr(2,2); var startTimeDate:String = startDate.replace("-","/").replace("-","/") +" "+                          checkFirstStTime + ":" + checkSecondStTime + ":" + "00";


sttime은 HHMM으로 저장된 시간이고 따라서 HH와 MM으로 분리하여 checkFirstStTime 과 checkSecondStTime에 저장한다.

그리고 YYYY-MM-DD로 저장된 startDate의 -를 replace를 이용하여 /로 치환하고, parse 형식에 맞춰 공백 입력 후 저장된 값들을 주어진 형식에 맞춰 startTimeDate에 입력해준다.


그럼 기존의 YYYY-MM-DD와 HHMM으로 저장된 각각의 값들이 YYYY/MM/DD HH:MM:SS로 저장이 된다.


시작 날짜를 위와 같이 변환해주고, 마감 날짜또한 변환해준 다음에 체크를 이용해주면 날짜간 차이가 확실해진다.

주의할점은 밀리세컨이기 때문에 날짜를 초로 변환하고 1000을 곱해줘야 한다는 사실.



+++덧

내가 써놓고 뭔말인지 모르겠지만 개발자는 코드로 말한다고 한다. 코드만 보면 이해가 가실듯.

블로그 이미지

김생선

세상의 모든것을 어장관리

티스토리 툴바