• 카테고리
    • 전체 글

    • 카테고리1
    • 카테고리2
    • 카테고리3
    • 카테고리4
  • 태그
  • 방명록

'After'에 해당되는 글 1건

  • 2013.02.27 Java, Calendar의 before, after 1

Java, Calendar의 before, after

기술자료/ETC 2013. 2. 27. 13:10

Java에서 보면 DateTime 대신, Calendar를 주로 사용한다.
아마도 지역마다 다른 이유나, 음력 등을 이유로 Date 개체로 처리하기에는 한계가 있어,
Date를 더욱 막강하게 만든 것 같다.

현재 이런 저런 구성 중에, 특정 일자의 이전, 이후에 대한 판단이 필요한 경우가 발생하는데,
Date 클래스에 있는 befere, after 처럼 Calendar에도 존재한다.

문제는 매번 짤 때 마다, 이 before, after 함수의 의미를 헷갈릴 때가 너무 많아서,
여기에 기억 되새김질 겸해서 적는다.

 

{Calendar 개체}.before({비교대상})

이 기본 문법인데, 이것을 이해하는 방법은 애석하게도 미국인 식으로 생각해주어야 한다.

{Calendar 개체} before then {비교대상}

즉 저 before 라는 의미는 “{비교대상}보다 {Calendar 개체}가 이전 인가?”라는 의미와 같다.

 

역으로 after는 다음과 같이 이해하면 된다.

{Calendar 개체}.after({비교대상})

이 기본 문법인데, 이것을 이해하는 방법은 아래와 같다.

{Calendar 개체} after then {비교대상}

즉, “{비교대상}보다 {Calendar 개체}가 이후 인가?”라는 의미와 같다.

 

아래와 같은 예제 코드를 실행 해보면 대충 짐작이 갈 것이다.

public void testCalendarAfterBefore()
{
	Calendar cal = Calendar.getInstance();
	Calendar calTester = (Calendar) cal.clone();
	calTester.roll(Calendar.DATE, 1);
	System.out.println(calTester.before(cal));
	System.out.println(cal.before(calTester));
}

위의 예제를 실행하면 이와 같은 결과를 얻을 수 있다.

false
true

 

cal 에는 현재 시간이, calTester에는 +1일 날짜가 담긴다.
즉, calTester가 cal보다 1일 더 큰 날짜이다.

이것을 위의 예제를 영어로 해석한다면,

calTester before then cal

cal before then calTester

이것을 한국말로 보자면,

calTester는 cal 보다 이전 날짜인가? 당연 false.

cal은 calTester 보다 이전 날짜인가? 당연 true.

 

단! 주의할 점은 저 비교는 모두 <. > 이지, 같은 것은 false 이다.

public void testCalendarAfterBefore()
{
	Calendar cal = Calendar.getInstance();
	Calendar calTester = (Calendar) cal.clone();
	
	System.out.println(calTester.before(cal));
	System.out.println(cal.before(calTester));
}

처음 예제 와는 다르게 아예 두 개가 같은 날인 경우 비교가 되지 않는다.
그래서 결과 값은 모두 false로 떨어진다.

false
false

만일 이전/이후 뿐만 아니라, 같거나 이전, 같거나 이후 이렇게 하려면,
같은지 여부를 반드시 먼저 체크해준 뒤에 이전/이후를 구분하여 처리해야 할 것 같다.

 

이 정도 적었으니, 잊어 버리진 않을 것 같다 ㅎㅎ.

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

  • «
  • 1
  • »
250x250

블로그 내에 소스 코드 삽입 이사온 기념 스킨도... RSS 전문 기능 비활성화 관련. 스킨 바꾸어 보았습니다. 서버 파일 정리 좀 했습니다.

«   2025/06   »
일 월 화 수 목 금 토
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

me2sms 블로그 windows 불만 Visual Studio Tutorial Google Apps Engine Buscuit 인터파크 개발환경 SharePoint moss 친구 지름신 twi2me java e-book 것 매뉴얼 Azure 2010 WSS 비스킷 MOSS 2007 수 me2dayzm me2photo 오류 협업 좀

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015-2025 Socialdev. All Rights Reserved.

Copyright © 2015-2025 Socialdev. All Rights Reserved.

티스토리툴바