[서적] Do it ! 시리즈/Do it! 자바스크립트 입문

[Do it! 자바스크립트 입문] 15 - 6장 Date 객체, Date 객체 함수, 기념일 계산기 만드는 방법

다두디다 2022. 2. 23. 21:04
728x90

 

오늘은 이제까지 배웠던 객체를 사용하여 간단한 프로그래밍을 해보겠습니다.

 

06 - 3 Date 객체를 활용해 기념일 계산기 만들기

 

[결과 미리보기] 기념일 계산기

 

 

 

#1 Date 객체

 

Date 객체를 사용하면 현재 날짜와 시간, 특정 날짜와 시간 등을 알 수 있습니다.

시간은 지정하지 않으면 오전 9시로 기본 설정이 됩니다.

 

new Date() // 현재 날짜와 시간
new Date("yyyy-mm-dd") // 특정 날짜와 시간
new Date("yyyy-mm") // 특정 연,월
new Date("yyyy-mm-ddThh:mm:ss") // 특정 날짜와 특정 시간

 

 

#2 Date 객체의 주요 함수

 

함수 이름 앞에 get 또는 set이 붙어있는데, 각 사용하는 의미가 다릅니다.

get => "가져온다"

set = > "두다, 설정하다"

 

함수 함수 이름 설명
get getFullYear() 날짜에서 연도 정보를 가져와 네자리 숫자로 표시
getMonth() 날짜에서 월 정보를 가져와 0~11까지 숫자로 표시 
0부터 1월  ~ 11은 12월
getDate() 날짜에서 일 정보를 가져와 표시
getDay() 날짜에서 요일 정보를 가져와 0~6까지 숫자로 표시
0 : 일요일 ~ 6 : 토요일
getTime() 1970년 1월 1일 자정 이후의 시간을 밀리초로 표시
set setFullYear() 연도를 네자리 숫자로 설정
setMonth() 0~11까지 숫자로 월 설정
0부터 1월  ~ 11은 12월
setDate() 1~31까지 숫자로 일 설정
setTime() 1970년 1월 1일 자정 이후의 시간을 밀리초로 설정

 

#3 현재 날짜와 시간 정보 가져오기

 

 

① now 변수에 Date 객체 인스턴스 만들기

 

② now.getDate() => 현재 날짜의 일 

 

③ now.getMonth() + 1 => 현재 날짜의 월

   * 1월은 0부터 시작하니 반드시 +1 해줄 것!

 

④ now.getDay() => 현재 날짜의 요일을 숫자로 표시

   * 일요일은 0부터 시작하여 3은 수요일

 

⑤ now.getTime() => 현재 날짜의 초를 밀리초로 나타냄

 

#4 밀리초를 현재 날짜로 변환하기

 

① now.setDate(now.getDate())

=> 현재 날짜의 일(getDate)을 설정하여(setDate) 밀리초로 나타내기

 

② now.setDate(now.getDate() + 50)

=> 현재 날짜의 일(getDate)에서 50을 더한 값을 설정하여(setDate) 밀리초로 나타내기

 

 

기념일 계산 프로그램 만들기

 

<html/css 기본 설정값>

<html 코드>

 

1단계 며칠 만났는지 알아보기

 

1단계 순서

1. '오늘날짜' Date 객체와 '처음 만난 날' Date 객체 만들기
2. '오늘날짜'와 '처음 만난 날' 밀리초로 바꾸기

3. 두 밀리초 차이 계산하기
4. 3번을 날짜로 바꾸기
5. id 태그에 넣어 화면에 표시하기

* 오늘 날짜 : 2022-02-23

  처음 만난 날 : 2022-01-01로 지정하였습니다.

 

* 밀리초 1일 계산법

 1 밀리초 = 1 / 1000

 1일 = 24시간 (24*60*60*1000 = 86,400,000밀리초)

 

* Math.round()로 소수점은 반올림하여 계산하였습니다.

 

1단계 결과값

 

2단계 100일, 200일 계산식 만들기

 

2단계 순서

1. 100일을 밀리초로 변환하여 처음 만난 날 더한 값을
future 변수를 만들어 저장하기
2. future 값을 사용해 새 Date 객체를
someday 변수를 만들어 저장하기
3. 연도, 월, 일 값 가져오기
4. id태그 안에 넣어 화면에 표시

 

 

2단계 결과값

 

100일과 똑같은 식을 200일에 더하는 숫자와 #id태그값만 바꾸어 넣어줍니다.

 

하지만 이렇게 계속 같은 명령을 여러번 반복하면 코드가 복잡해지니

clacDate()함수를 만들어 작성해보겠습니다.

 

3단계 calcDate() 함수 선언하기

 

 

앞에 숫자로 더할 일수를 적었던 곳에 days 변수를 선언하고

id태그에도 "#date" + days를 선언한 뒤

clacDate함수를 100일, 200일, 365일, 500일 등 날짜를 지정해 주면 완성입니다.

 

3단계 결과값

 

3단계 + a 만난 날짜 화면에 표시하기

 

책에는 없는 내용인데 처음 지정한 날짜를 화면에

연,월,일로 표시하면 좋을 것 같아서 따로 식 만들어서 넣어보았습니다!

 

 

someDay 변수에 처음에 지정했던 firstDay('처음 날짜' Date 객체)를 넣어주고

똑같이 연,월,일을 가져와 화면에 표시하면 완성!

 

완성한 결과값

 

오래걸렸지만 하나하나 짚어보면서 복습도 여러 번 하니

Date 객체를 확실히 이해한 것 같아서 기분이 좋네요 ! :)

728x90