내장 객체 생성하기

아래는 내장객체를 생성하는 기본문법이다. 객체를 생성할 때에는 new라는 키워드와 생성함수를 사용한다.



참조 변수(인스턴스 네임) = new 생성함수();




날짜 정보 객체


날짜나 시간 관련 정보를 제공받고 싶을 때는 날짜 객체(date object)를 생성한다. 날짜 정보 객체는 날짜와 관련된 작업을 할 때 유용한 객체이다.

먼저, 현재 날짜의 정보를 제공하는 Date 객체는 아래와 같이 생성한다.



// 참조 변수 = new Date();

var t = new Date();



만약 현재 날짜가 아니라 특정 날짜의 정보를 제공받아야 한다면, 특정 날짜의 정보 객체를 만들어야 한다.
특정 날짜의 Date 객체는 아래와 같이 생성한다.



// 참조 변수 = new Date("연/월/일");
// 참조 변수 = new Date(연, 월-1, 일);



날짜 관련 메서드


날짜 정보를 가져올 때


getFullYear() - 연도 정보를 가져옴
getMonth() - 월 정보를 가져옴 (현재 월 -1)
getDate() - 일 정보를 가져옴
getDay() - 요일 정보를 가져옴 (일요일:0 ~ 토요일:6)
getHours() - 시 정보를 가져옴
getMinutes() - 분 정보를 가져옴
getSeconds() - 초 정보를 가져옴
getMilliseconds() - 밀리초 정보를 가져옴
getTime() - 1970년 1월1일부터 경과된 시간을 밀리초로 표기함
toGMTString() - GMT 표준 표기 방식으로 문자형 데이터로 반환함
toLocaleString() - 운영 시스템 표기 방식으로 문자형 데이터로 반환함



날짜 정보를 수정할 때


setFullYear() - 연도 정보만 수정
setMonth() - 월 정보만 수정 (월 -1)
setDate() - 일 정보만 수정
setHours() - 시 정보만 수정
setMinutes() - 분 정보만 수정
setSeconds() - 초 정보만 수정
setMilliseconds() - 밀리초 정보만 수정
setTime() - 1970년 1월1일부터 경과된 시간을 밀리초로 수정




-날짜 정보 객체 예제1


var t = new Date();
var nowMonth = t.getMonth()+1;
var nowDate = t.getDate();
var nowDay = t.getDay();

document.write("현재 월:" + nowMonth, "<br>");
document.write("현재 일:" + nowDate, "<br>");
document.write("현재 요일:" + nowDay, "<br>");


var m = new Date(2002, 4, 31);
var theMonth = m.getMonth()+1;
var theDate = m.getDate();
var theDay = m.getDay();

document.write("2002 월드컵은 몇 월:" + theMonth, "<br>");
document.write("2002 월드컵은 몇 일:" + theDate, "<br>");
document.write("2002 월드컵은 무슨 요일:" + theDay, "<br>");


현재 날짜 객체와 특정 날짜 객체를 사용하여 2002년 월드컵 날짜와 관련된 정보를 출력했다.
변수 t에 현재 날짜 객체를 생성해서 담고, 현재 월의 정보, 일의 정보 그리고 현재 요일의 정보를 각각의 변수에 반환하였다.


그리고 변수 m에 특정 날짜 객체로 2002년 월드컵 날짜인 2002년 5월 31일 객체를 생성했다. 월 정보는 0부터 시작하기 때문에 5월에서 -1 해준 4월을 입력해야 한다.


요일 정보는 0은 일요일, 1은 월요일을 나타내기 때문에 현재 요일인 6은 토요일, 2002년 월드컵 요일인 5는 금요일임을 알 수 있다.






현재 날짜부터 특정 날짜까지 며칠이 남았는지 구하는 형식은 “남은 일수(밀리 초) = 특정 날짜 객체 - 현재 날짜 객체” 이다.
이때, 남은 일수는 밀리초(1/1000초) 단위로 계산된다.


1일은 몇 밀리 초인지를 계산할 수 있어야 남은 일 수를 구할 수 있다. 계산하는 방법은 아래와 같다.


1초 = 1000
1분(60초) = 100060 (60,000)
1시간(60분) = 1000
6060 (3,600,000)
1일(60분
24) = 10006060*24 (86,400,000)



-날짜 정보 객체 예제2


var t = new Date();
var nowYear = t.getFullYear();

var theDate = new Date(nowYear, 11, 31);
var diffDate = theDate - t;

var result = Math.ceil( diffDate / (1000*60*60*24) );

document.write("현재 일로부터 올해의 말일까지는 " + result + "일 남았습니다.");


현재 날짜로부터 연말까지 며칠이 남았는지 날짜 정보 객체를 통하여 알아보았다.


변수 t에 오늘 날짜의 객체를 생성하고, 변수 nowYear에 오늘 날짜의 연도 정보를 가져왔다.
변수 theDate에 올해 연말의 날짜 객체를 생성하고, 변수 diffDate에 연말까지 남은 기간(밀리초)=연말 날짜-현재 날짜의 값을 담았다.


그리고 밀리초를 남은 일수로 계산한 후, 오늘 날짜에도 포함되도록 소수점은 무조건 반올림이 되게 Math.ceil()을 이용했다.