HighCode

블로그 이미지

프알못

모두를 위한 프로그래밍, 보안, IT 정보

[TIP] 두 날짜 사이의 차이 계산하기

HighCode/Java 2016. 9. 21. 12:07

프로그래밍을 하다 보면 날짜 계산을 할 경우가 생기게 되는데요..


그럴때 사용할 수 있는 방법을 소개하겠습니다.


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
public void calDateBetweenAandB()
{
    String date1 = "2016-09-21";
    String date2 = "2016-09-10";
 
    try{ // String Type을 Date Type으로 캐스팅하면서 생기는 예외로 인해 여기서 예외처리 해주지 않으면 컴파일러에서 에러가 발생해서 컴파일을 할 수 없다.
        SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd");
        // date1, date2 두 날짜를 parse()를 통해 Date형으로 변환.
        Date FirstDate = format.parse(date1);
        Date SecondDate = format.parse(date2);
        
        // Date로 변환된 두 날짜를 계산한 뒤 그 리턴값으로 long type 변수를 초기화 하고 있다.
        // 연산결과 -950400000. long type 으로 return 된다.
        long calDate = FirstDate.getTime() - SecondDate.getTime(); 
        
        // Date.getTime() 은 해당날짜를 기준으로1970년 00:00:00 부터 몇 초가 흘렀는지를 반환해준다. 
        // 이제 24*60*60*1000(각 시간값에 따른 차이점) 을 나눠주면 일수가 나온다.
        long calDateDays = calDate / ( 24*60*60*1000); 
 
        calDateDays = Math.abs(calDateDays);
        
        System.out.println("두 날짜의 날짜 차이: "+calDateDays);
        }
        catch(ParseException e)
        {
            // 예외 처리
        }
}    
        
Colored by Color Scripter
cs


18 line 이해 안되시는 분. getTime() 에 대한 문서를 보게되면..


Declaration

public long getTime()

Return Value

This method returns how many milliseconds have passed since January 1, 1970, 00:00:00 GMT


번역: 이 메소드는 해당 날짜가 1970년 1월 1일 00:00:00시 부터 얼마나 지났는지를 리턴합니다.


출처 : https://www.tutorialspoint.com/java/util/date_gettime.htm


getTime() 을 한번 써보시면 알게될거예요..



20 line에서는 Math.abs() 를 통해 음수 결과일 경우 양수로 바꿔주었습니다.


날짜 차이만 구하는 거라면 이 방법이 깔끔하게 값을 이용할 수 있습니다.










저작자표시비영리동일조건

'HighCode > Java' 카테고리의 다른 글

[Spring] Restful한 스프링 @ResponseBody vs @RestController  (1) 2016.12.21
프알못을 위한 Java 04. 조건문 if 와 switch  (0) 2016.09.27
[TIP] 정규표현식(Pattern Matching) 완전 정리!  (6) 2016.09.22
[TIP] 두 날짜 사이의 차이 계산하기  (1) 2016.09.21
프알못을 위한 Java - 02. 문자열 출력  (0) 2016.09.04
프알못을 위한 Java - 01. 프로젝트,클래스 생성  (0) 2016.09.04
Posted by 프알못
  • Mc
    2018.10.15 22:02

    7번줄 SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd");
    mm은 분이고 MM이 월입니당!

트랙백

※ 스팸 트랙백 차단중 ...{ ? }

프알못을 위한 Java - 02. 문자열 출력

HighCode/Java 2016. 9. 4. 16:56

간단하게 자바를 이용해서 원하는 내용을 출력하는 간단한 프로그램을 만들어 봅시다.


예제 먼저 보여드리고 설명해드리겠습니다.


예제1)

1
2
3
4
5
6
7
8
9
10
11
12
13
 package highcode;
 
public class test {
 
    public static void main(String[] args) {
        System.out.println("Hello JavaWorld");
        System.out.print("Hello JavaWorld\n");
        System.out.printf("Hello JavaWorld");
    }
 
}
 
 
Colored by Color Scripter
cs


코드에서 보이는 생소한 3줄 각각 알아보겠습니다.


1. (line : 6)


6
System.out.println("Hello JavaWorld");
cs


System.out.println() 함수 입니다. 괄호안에 입력된 내용을 출력하는 함수이고 평문은 ""이용해서 wrapping 시켜줘야 합니다.

특징은 자동으로 개행(줄을 바꿈. 자동엔터라고 생각하세요)이 되는 함수 입니다.

다양한 응용법은 변수를 배우고 추가적으로 알려드리겠습니다.


2. (line : 7)


7
System.out.print("Hello JavaWorld\n");
cs


System.out.print() 함수 입니다. System.out.println() 함수와 마찬가지로 괄호안에 입력된 내용을 출력하며 평문은 ""으로 감싸줘야 합니다.

System.out.println()와는 다르게 자동으로 개행하지 않습니다. 그래서 위 예제에는 개행문자 \n을 따로 기입해주었습니다.

개행문자와 같은 이스케이프 시퀀스(escape sequence)는 따로 정리해드리겠습니다.


3. (line : 8)


8
System.out.printf("Hello JavaWorld");
cs


System.out.printf() 함수 입니다. 위의 함수들과 마찬가지로 괄호안에 입력된 내용을 출력할때 사용하고 평문은.. 알죠?

System.out.print() 함수처럼 자동으로 개행하지 않습니다. 개행문자(\n)을 통해 개행시킬 수 있습니다.

위 두 출력함수와의 차이점은 C언어 스타일의 출력을 지원한다는 것입니다. 

이 스타일은 차차 알아보도록 합시다.



여기서 중요한 포인트 1. 줄마다 끝에 ;(세미콜론) 이 붙는데 이거 뭔가요?


컴퓨터에게 "끝"을 알려주기 위해 사용합니다. 변수의 선언, 함수의 사용 등 거의 모든 문법 뒤에 온다고 알아두세요. 예외도 있답니다.



출력함수 응용



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package highcode;
 
public class test {
 
    public static void main(String[] args) {
        System.out.println("Hello I'm System.out.println()");
        System.out.println();
        System.out.print("Nice to meet you.\n I'm System.out.print()\n\n");
        System.out.printf("Hi guys. My name is System.out.print()\n\n");
        
        System.out.println("안녕 나는 한국인이야.");
        System.out.print("こんにちは。私は日本人です。\n");
        System.out.printf("你好。我是日本人。");
    }
 
}
 
 
 
Colored by Color Scripter
cs


1. (line : 7)

System.out.println();


System.out.println() 함수가 자동으로 개행한다는것을 응용해서 단순히 개행을 위해 호출할 수도 있습니다.


2. (line : 8)


개행문자는 얼마든지 여러번 써도 상관없습니다. 이런식으로 사용하면 한 함수로 여러줄을 만드는것도 가능합니다.


3. (line : 10)

(빈공간)


아무리 파일내에서 엔터를 쳐도 개행되지 않습니다. 개행을 위해서는 개행문자 혹은 자동으로 개행을 하는 함수를 이용해주세요.


4. (line : 11, 12, 13)


11
12
13
System.out.println("안녕 나는 한국인이야.");
System.out.print("こんにちは。私は日本人です。\n");
System.out.printf("你好。我是日本人。");
cs


출력함수들은 유니코드를 지원하기 때문에 영어뿐 아니라 다양한 charset을 지원합니다. 이때 파일은 UTF-8형식으로 저장되어야 합니다.



출력함수를 여러 가지로 스스로 응용해보시길 바랍니다. 오늘은 여기까지 하고 다음시간에는 변수에 대해 알아보겠습니다.







저작자표시비영리동일조건

'HighCode > Java' 카테고리의 다른 글

[Spring] Restful한 스프링 @ResponseBody vs @RestController  (1) 2016.12.21
프알못을 위한 Java 04. 조건문 if 와 switch  (0) 2016.09.27
[TIP] 정규표현식(Pattern Matching) 완전 정리!  (6) 2016.09.22
[TIP] 두 날짜 사이의 차이 계산하기  (1) 2016.09.21
프알못을 위한 Java - 02. 문자열 출력  (0) 2016.09.04
프알못을 위한 Java - 01. 프로젝트,클래스 생성  (0) 2016.09.04
Posted by 프알못

트랙백

※ 스팸 트랙백 차단중 ...{ ? }

프알못을 위한 Java - 01. 프로젝트,클래스 생성

HighCode/Java 2016. 9. 4. 15:58

시작하기 전에 준비물


Java JDK : (다운로드)[각주:1]


Java JRE : (다운로드)


저는 IDE를 이클립스를 사용했습니다. 입맛에 맞는걸로 사용해주세요. 포스트는 이클립스를 바탕으로 포스팅되었습니다.


(이클립스 IDE 다운로드)




저는 자바의 장점같은 서론은 전부 스킵하고 바로 본론으로 넘어가겠습니다.


1. 프로젝트 생성


(이클립스 Java IDE)


File - New - Project를 해서 자바 프로젝트를 생성할 수 있습니다.


New Project 창이 뜨면 Java Project를 눌르고 Next.


Project 이름을 지정해준다음 Finish를 눌러주세요.


Open Associated Perspective? 뜨면 yes[각주:2]



(생성된 프로젝트. algorithm 프로젝트는 기존에 필자가 만들어놓은 프로젝트이니 신경쓰지 마세요.)



2. 클래스 생성


만든 프로젝트에 마우스 오른쪽버튼 > New > Class 를 이용해서 Class를 만들 수 있습니다.



Name 필드에 원하는 이름을 지어줍시다.

밑에 public static void main(String[] args) 박스는 옵션입니다. 체크하면 메인함수를 자동으로 작성해서 class가 생성됩니다. 

하나는 체크하고 생성하고 하나는 체크풀고 생성해서 차이점 확인해보세요.

다하셨으면 Finish.



(생성된 class)



앞으로 모든 프로그래밍은 이 생성된 클래스 파일내에서 이루어집니다. 다음 포스팅부터 본격적으로 코딩을 해봅시다.



  1. 1. Accept Licence Agreement 체크 2. 컴퓨터에 맞는 버전 다운로드 [본문으로]
  2. Project Explorer가 Package Explorer로 바뀝니다. 이건 아직 몰라도 됩니다. [본문으로]
저작자표시비영리동일조건

'HighCode > Java' 카테고리의 다른 글

[Spring] Restful한 스프링 @ResponseBody vs @RestController  (1) 2016.12.21
프알못을 위한 Java 04. 조건문 if 와 switch  (0) 2016.09.27
[TIP] 정규표현식(Pattern Matching) 완전 정리!  (6) 2016.09.22
[TIP] 두 날짜 사이의 차이 계산하기  (1) 2016.09.21
프알못을 위한 Java - 02. 문자열 출력  (0) 2016.09.04
프알못을 위한 Java - 01. 프로젝트,클래스 생성  (0) 2016.09.04
Posted by 프알못
자바, 프로그래밍 언어

트랙백

※ 스팸 트랙백 차단중 ...{ ? }
이전페이지 다음페이지
블로그 이미지

모두를 위한 프로그래밍, 보안, IT 정보

by 프알못

공지사항

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • [SPRING] JSP 주석 정리
  • [Spring] 이클립스(eclipse) 톰캣.. (3)
  • [C] Anti Sandbox
  • 2017년 1월 토렌트 트래커 모음(201..
  • [Spring] Controller 에서 ModelAnd..
  • 더 보기
  • 델파이개발하나요? 아니면 델파이리..
    craz_box ㆍ 2019
  • 7번줄 SimpleDateFormat format = n..
    Mc ㆍ 2018
  • .바로 뒤에 공백 혹은 줄바꿈 문자..
    정규식어려워 ㆍ 2018
  • 문자열 내라서 \\\\ 쓰는 게 맞고,..
    Perit ㆍ 2018
  • 패턴 중 "^\\S+.는 \ 하나가 맞는..
    Rudy ㆍ 2018

태그

  • 토렌트
  • 컴퓨터 청소
  • 악성코드무료치료
  • 자바
  • 맬웨어
  • 백신
  • .트래커
  • 이클립스
  • 소프트웨어
  • CCleaner
  • IT
  • 트렌드
  • 랜섬웨어
  • 2016
  • Python
  • c언어
  • 포털사이트
  • 크랙
  • 파이썬
  • 프리웨어
  • 프로그래밍 언어
  • 악성코드
  • 토렌트 사용법
  • 리버싱
  • 스프링

글 보관함


  • 2018/09
    (1)

  • 2018/08
    (1)

  • 2017/03
    (1)

  • 2017/01
    (1)
«   2020/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        

링크

카테고리

분류 전체보기 (28)
HighCode (14)
C/C++ (1)
Python (1)
Java (11)
C# (0)
Other (1)
UnderCode (6)
Malware (3)
Hacking Tool (1)
Exploit (0)
Cracking (2)
Software (5)
Torrent (3)
Game (0)
Freeware (2)
App (0)
News & Issue (2)
IT꿀팁 (0)
잼잼 (1)

카운터

Total
327,760
Today
21
Yesterday
404
방명록 : 관리자 : 글쓰기
프알못's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

HighCode

모두를 위한 프로그래밍, 보안, IT 정보

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • 분류 전체보기 (28)
    • HighCode (14)
      • C/C++ (1)
      • Python (1)
      • Java (11)
      • C# (0)
      • Other (1)
    • UnderCode (6)
      • Malware (3)
      • Hacking Tool (1)
      • Exploit (0)
      • Cracking (2)
    • Software (5)
      • Torrent (3)
      • Game (0)
      • Freeware (2)
      • App (0)
    • News & Issue (2)
    • IT꿀팁 (0)
    • 잼잼 (1)

카테고리

PC화면 보기 티스토리 Daum