ASP 기초 정리 - 황재선님 제공

   강좌 최초 작성일 : 2000년 x월 x일
   강좌 최종 수정일 : 2001년 7월 17일

   작성자 : Helios7(황 재선) : http://www.neovis.pe.kr
   편집자 : Taeyo(김 태영)

   강좌 제목 : ASP 기초 - 날짜와 시간 함수

4.2 날짜와 시간 함수

날짜와 시간에 관련된 내용을 표현하는 함수들도 ASP에서는 중요한 비중을 가진다. 시스템에서 제공하지 못하는 여러 가지 기능들을 이런 함수들을 통해서 구현이 가능하다. 특히 날짜 연산에 대한 코드 작성시 많은 도움을 얻을 수 있는 날짜와 시간 함수들에 대해서 알아보자.

1) CDate

Date 하위 형식의 Variant로 변환된 식을 반환한다.

구문 : CDate(date)

date 인수는 유효한 날짜식이면 된다.
변환값은 컴퓨터의 날짜/시간 설정에 따르며 짧은 날짜 표기법으로 출력된다.

● cdate.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
MyDate = "2000년 12월 11일"
Response.Write MyDate & "<BR>"
Response.Write CDate(MyDate)
%>
---------------------------------------------------------------------------------------------------


[그림 2-1] cdate.asp 실행 결과


2) Date

현재 시스템의 날짜를 반환한다.

구문 : Date

● date.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
Response.Write Date
%>
---------------------------------------------------------------------------------------------------


[그림 2-2] date.asp 실행 결과


3) DateAdd

지정된 날짜에 시간을 추가하거나 뺀 새로운 날짜를 반환한다.

구문 : DateAdd(interval, number, date)

● interval : 필수적인 인수로 interval을 추가한 날짜를 나타내는 문자식이다. 그 값에 대해서는 아래의 표를 참조하라.
● number : 필수적인 인수로 추가할 간격 수의 수식이다. 수식에서 양수는 미래의 날짜, 음수는 과거의 날짜이다.
● date : 필수적인 인수로 interval을 추가한 날짜를 나타내는 Variant 또는 리터럴이다.

● interval 인수
---------------------------------------------------------------------------------------------------
설정 설명

yyyy 년
q 분기
m 월
y 일(일년 기준)
d 일
w 요일
ww 주(일년 기준)
h 시
n 분
s 초
---------------------------------------------------------------------------------------------------

● dateadd.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
MyDate = Date
Response.Write "오늘날짜 : " & MyDate & "<BR>"
Response.Write "오늘날짜+3개월 : " & DateAdd("m",3,MyDate) & "<BR>"
Response.Write "오늘날짜-3개월 : " & DateAdd("m",-3,MyDate) & "<BR>"
%>
---------------------------------------------------------------------------------------------------


[그림 2-3] dateadd.asp


4) DateDiff

주어지는 두 날짜의 간격을 반환한다.

구문 : DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])

● interval : 필수적인 인수로 날짜1과 날짜2 사이의 차이를 계산하는 데 사용할 interval의 문자식이다. 그 값에 대해서는 아래의 표를 참조하라.
● date1, date2 : 필수적인 인수로 날짜식에서 계산에 사용할 두 날짜이다.
● firstdayofweek : 선택적인 인수로 요일을 지정하는 상수로 지정하지 않으면 일요일로 간주한다. 그 값에 대해서는 아래의 표를 참조하라.
● firstweekofyear : 선택적인 인수로 연도를 기준으로 한 첫째 주를 지정하는 상수이다. 지정하지 않으면 1월 1일을 포함하는 주를 첫째 주로 간주한다. 그 값에 대해서는 아래의 표를 참조하라.

● interval 인수
---------------------------------------------------------------------------------------------------
설정 설명

yyyy 년
q 분기
m 월
y 일(일년 기준)
d 일
w 요일
ww 주(일년 기준)
h 시
n 분
s 초
---------------------------------------------------------------------------------------------------

● firstdayofweek 인수
---------------------------------------------------------------------------------------------------
상수 값 설명

vbUseSystem 0 NLS(National Language Support) API 설정 사용
vbSunday 1 일요일(기본값)
vbMonday 2 월요일
vbTuesday 3 화요일
vbWednesday 4 수요일
vbThursday 5 목요일
vbFriday 6 금요일
vbSaturday 7 토요일
---------------------------------------------------------------------------------------------------

● firstweekofyear 인수
---------------------------------------------------------------------------------------------------
상수 값 설명

vbUseSystem 0 NLS(National Language Support) API 설정 사용
vbFirstJan1 1 1월 1일을 포함하는 주에서 시작(기본값)
vbFirstFourDays 2 새해의 처음 4일을 포함하는 주에서 시작
vbFirstFullWeek 3 새해의 처음 한 주일(7일)을 포함하는 주에서 시작
---------------------------------------------------------------------------------------------------

● datediff.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
FirstDate = CDate("2000년 1월 1일")
MyDate = Date
Response.Write FirstDate & "부터 지금까지 " & DateDiff("y", FirstDate, MyDate) & "일 경과 <BR>"
Response.Write FirstDate & "부터 지금까지 " & DateDiff("h", FirstDate, MyDate) & "시 경과 <BR>"
Response.Write FirstDate & "부터 지금까지 " & DateDiff("n", FirstDate, MyDate) & "분 경과 <BR>"
Response.Write FirstDate & "부터 지금까지 " & DateDiff("s", FirstDate, MyDate) & "초 경과 <BR>"
%>
---------------------------------------------------------------------------------------------------


[그림 2-4] datediff.asp 실행 결과


5) DatePart

주어진 날짜의 지정된 부분을 반환한다.

구문 : DatePart(interval, date[, firstdayofweek[, firstweekofyear]])

● interval : 필수적인 인수로 반환할 시간 간격의 문자식이다. 그 값에 대해서는 아래의 표를 참조하라.
● date : 필수적인 인수로 계산할 날짜식이다.
● firstdayof week : 선택적인 인수로 요일을 지정하는 상수로서 지정하지 않으면 일요일로 간주한다. 그 값에 대해서는 아래의 표를 참조하라.
● firstweekofyear : 선택적인 인수로 연도를 기준으로 한 첫째 주를 지정하는 상수이다. 지정하지 않으면 1월 1일을 포함하는 주를 첫째 주로 간주한다. 그 값에 대해서는 아래의 표를 참조하라.

● interval 인수
---------------------------------------------------------------------------------------------------
설정 설명

yyyy 년
q분기
m 월
y 일(일년 기준)
d 일
w 요일
ww 주(일년 기준)
h 시
n 분
s 초
---------------------------------------------------------------------------------------------------

● firstdayofweek 인수
---------------------------------------------------------------------------------------------------
상수 값 설명

vbUseSystem 0 NLS(National Language Support) API 설정 사용
vbSunday 1 일요일(기본값)
vbMonday 2 월요일
vbTuesday 3 화요일
vbWednesday 4 수요일
vbThursday 5 목요일
vbFriday 6 금요일
vbSaturday 7 토요일
---------------------------------------------------------------------------------------------------

● firstweekofyear 인수
---------------------------------------------------------------------------------------------------
상수 값 설명

vbUseSystem 0 NLS(National Language Support) API 설정 사용
vbFirstJan1 1 1월 1일을 포함하는 주에서 시작(기본값)
vbFirstFourDays 2 새해의 처음 4일을 포함하는 주에서 시작
vbFirstFullWeek 3 새해의 처음 한 주일(7일)을 포함하는 주에서 시작
---------------------------------------------------------------------------------------------------

● datepart.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
Today = Now
Response.Write "오늘 " & Today & "은 " & DatePart("q", Today) & "분기 입니다."
%>
---------------------------------------------------------------------------------------------------


[그림 2-5] datapart.asp 실행 결과


6) DateSerial

지정된 년, 월, 일의 Date 하위 형식인 Variant를 반환한다. 즉 임의의 숫자를 입력받아 날짜 형식으로 반환하는 함수이다.

구문 : DateSerial(year, month, day)

● year : 100에서 9999까지의 수 또는 수식
● month : 모든 수식
● day : 모든 수식

● dateserial.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
Response.Write DateSerial(2000+1, 12+3, 2+5)
%>
---------------------------------------------------------------------------------------------------


[그림 2-6] dateserial.asp 실행 결과


7) DateValue

Date 하위 형식의 Variant를 반환한다.

구문 : DateValue(date)

대개 date 인수는 100년 1월 1일에서 9999년 12월 31일까지를 나타내는 문자식으로 이 범위에 있는 날짜, 시간 또는 날짜/시간을 나타내는 식이다. date 인수에 시간 정보가 있는 경우 DateValue 함수에서는 그 정보를 반환하지 않는다. 그러나 date 인수에 "12:11"처럼 잘못된 시간 정보가 있으면 오류가 발생하게 된다.

date 인수가 유효한 날짜 구분 기호로 분리된 숫자만 있는 문자열인 경우, DateValue 함수에서는 컴퓨터에 설정한 간단한 표시 날짜 형식에 따라 년, 월, 일에 대한 순서로 인식하게 된다. 또한 정식이나 약식의 월 이름을 포함하고 있는 명확한 날짜도 인식한다. 예를 들어 DateValue 함수는 1/23/2001과 1/23/01 뿐만 아니라 January 23,2001과 Jan 23,2001을 모두 인식한다.

date 인수에서 연도 부분을 생략할 경우 DateValue 함수는 컴퓨터 시스템에 설정되어 있는 현재 연도를 사용한다.

● datevalue.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
Response.Write DateValue("2000년 12월 25일")
%>
---------------------------------------------------------------------------------------------------


[그림 2-7] datevalue.asp 실행 결과


8) Day

날짜를 나타내는 1에서 31까지의 정수를 반환한다.

구문 : Day(date)

date 인수는 날짜를 표현하는 식이다. date 인수에 Null이 있으면 Null을 반환한다.

● day.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
   Response.Write Day("2000년 12월 25일")
%>
---------------------------------------------------------------------------------------------------


[그림 2-8] day.asp 실행 결과


9) Hour

하루의 시간을 나타내는 0에서 23까지의 정수를 반환한다.

구문 : Hour(time)

time 인수는 시간을 나타내는 식이다. time이 Null이면 Null을 반환한다.

● hour.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
Response.Write "지금 시간은 " & Now & " 입니다. <BR>"
Response.Write "시간은 " & Hour(Now) & "시 입니다."
%>
---------------------------------------------------------------------------------------------------


[그림 2-9] hour.asp 실행 결과

10) IsDate

한 식이 날짜로 변환될 수 있는지 여부를 나타내는 부울 값을 반환한다. 날짜 형식을 구분할 때 주로 사용한다.

구문 : IsDate(expression)

expression 인수는 날짜식 또는 날짜나 시간으로 인식될 수 있는 문자식이다.
IsDate 함수는 해당 식이 날짜이거나 유효한 날짜로 변환될 수 있는 경우 True를, 그렇지 않으면 False를 반환합니다. Microsoft Windows의 유효한 날짜 범위는 서기 100년 1월 1일에서 서기 9999년 12월 31일까지이지만, 운영 체제에 따라 그 범위가 달라진다.

● isdate.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
FirstDate = "2000년 12월 11일"
SecondDate = "Hello! ASP~"
If IsDate(FirstDate) Then
   Response.Write FirstDate & "는 날짜형식입니다. <BR>"
Else
   Response.Write FirstDate & "는 날짜형식이 아닙니다. <BR>"
End If
If IsDate(SecondDate) Then
   Response.Write SecondDate & "는 날짜형식입니다. <BR>"
Else
   Response.Write SecondDate & "는 날짜형식이 아닙니다. <BR>"
End If
%>
---------------------------------------------------------------------------------------------------


[그림 2-10] isdate.asp 실행 결과


11) Minute

시간의 분을 나타내는 0에서 59까지의 정수를 반환한다.

구문 : Minute(time)

time 인수는 시간을 나타내는 식이다. time에 Null이 있으면 Null을 반환한다.

● minute.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
Response.Write "지금 시간은 " & Now & " 입니다. <BR>"
Response.Write "분은 " & Minute(Now) & "분 입니다."
%>
---------------------------------------------------------------------------------------------------


[그림 2-11] minute.asp 실행 결과


12) Month

년의 월을 나타내는 1에서 12까지의 정수를 반환한다.

구문 : Month(date)

date 인수는 날짜를 나타내는 식이다. date에 Null이 있으면 Null을 반환한다.

● month.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
Response.Write "지금 시간은 " & Now & " 입니다. <BR>"
Response.Write Month(Now) & "월 입니다."
%>
---------------------------------------------------------------------------------------------------


[그림 2-12] month.asp 실행 결과


13) MonthName

지정한 월을 나타내는 문자열을 반환한다.

구문 : MonthName(month[, abbreviate])

● month : 필수적인 인수로 1월은 1, 2월은 2, 등등으로 월을 나타내는 숫자이다.
● abbreviate : 선택적인 인수로 월 이름을 약어 형태로 표시할지 여부를 나타내는 부울 값이다. 생략하면 기본값인 False가 되며, 월 이름을 완전한 형태로 표시한다.

● monthname.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
Response.Write MonthName(12, true) & "<BR>"
Response.Write MonthName(12, false) & "<BR>"
%>
---------------------------------------------------------------------------------------------------


[그림 2-13] monthname.asp 실행 결과


14) Now

컴퓨터의 시스템 날짜와 시간에 따른 현재 날짜와 시간을 반환한다.

구문 : Now

● now.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
Response.Write "지금 시간은 " & Now & " 입니다."
%>
---------------------------------------------------------------------------------------------------


[그림 2-14] now.asp 실행 결과


15) Second

분의 초를 나타내는 0에서 59까지의 정수를 반환한다.

구문 : Second(time)

time 인수는 시간을 나타내는 식이다. time 인수에 Null이 있으면 Null을 반환한다.

● second.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
Response.Write "지금 시간은 " & Now & " 입니다. <BR>"
Response.Write Second(Now) & "초 입니다."
%>
---------------------------------------------------------------------------------------------------


[그림 2-15] second.asp 실행 결과


16) Time

현재 시스템 시간을 나타내는 Date 하위 형식의 Variant를 반환한다.

구문  : Time

● time.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
Response.Write "지금 시간은 " & Time & " 입니다. <BR>"
%>
---------------------------------------------------------------------------------------------------


[그림 2-16] time.asp 실행 결과


17) Timer

자정 이후 경과한 초 수를 나타내는 Single 값을 반환한다.

구문 : Timer

● timer.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
Response.Write Timer & " 초 경과 입니다. <BR>"
%>
---------------------------------------------------------------------------------------------------


[그림 2-17] timer.asp 실행 결과


18) TimeSerial

지정한 년, 월, 일의 Date 하위 형식인 Variant를 반환한다.

구문 : TimeSerial(hour, minute, second)

● time : 0(오전 12:00)에서 23(오후 11:00) 사이의 수(0과 23 포함) 또는 수식
● minute : 모든 수식
● second : 모든 수식

10시 51분 59초처럼 어떤 시간을 지정하려면 각 TimeSerial 인수의 숫자는 해당 인수의 허용 범위 안에 있어야 한다. 즉, 시간은 0-23이며, 분과 초는 0-59입니다. 그러나 특정 시간의 앞뒤에 시, 분, 초를 나타내는 수식을 사용하여 각 인수의 상대적인 시간을 지정할 수도 있다.

● timeserial.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
Response.Write TimeSerial(23, 12, 11)
%>
---------------------------------------------------------------------------------------------------


[그림 2-18] timeserial.asp 실행 결과


19) TimeValue

시간을 포함하는 Date 하위 형식의 Variant를 반환한다.

구문 : TimeValue(time)

대개 time 인수는 0:00:00(오전 12:00:00)에서 23:59:59(오후 11:59:59)까지의 시간을 나타내는 문자식으로 이 범위에 있는 시간을 나타내는 식도 time 인수가 될 수 있다. time에 Null이 있으면 Null을 반환한다.

● timevalue.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
Response.Write TimeValue("오후 11:11:11")
%>
---------------------------------------------------------------------------------------------------


[그림 2-19] timevalue.asp 실행 결과


20) Weekday

요일을 나타내는 정수를 반환한다.

구문 : Weekday(date, [firstdayofweek])

● date : 날짜를 나타내는 식이다. date에 Null이 있으면 Null을 반환한다.
● firstdayofweek : 첫째 요일을 지정하는 상수이다. 생략하면 vbSunday로 간주한다.

● firstdayofweek 인수
---------------------------------------------------------------------------------------------------
상수 값 설명

vbUseSystem 0 NLS( National Language Support) API 설정 사용
vbSunday 1 일요일
vbMonday 2 월요일
vbTuesday 3 화요일
vbWednesday 4 수요일
vbThursday 5 목요일
vbFriday 6 금요일
vbSaturday 7 토요일
---------------------------------------------------------------------------------------------------

● Weekday 함수 반환 값
---------------------------------------------------------------------------------------------------
상수 값 설명

vbSunday 1 일요일
vbMonday 2 월요일
vbTuesday 3 화요일
vbWednesday 4 수요일
vbThursday 5 목요일
vbFriday 6 금요일
vbSaturday 7 토요일
---------------------------------------------------------------------------------------------------

● weekday.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
MyDate = #2000-12-25#
Response.Write Weekday(MyDate)
%>
---------------------------------------------------------------------------------------------------


[그림 2-20] weekday.asp 실행 결과


21) WeekdayName

지정된 요일을 나타내는 문자열을 반환한다.

구문 : WeekDayName(weekday, abbreviate, firstdayofweek)

● weekday : 필수적인 인수로 요일을 나타내는 숫자이다. firstdayofweek 설정에 따라 각 요일의 값이 다르다.
● abbreviate : 선택적인 인수로 요일 이름을 약어로 나타낼지 여부를 나타내는 부울 값이다. 생략하면 기본값인 False가 되며 요일 이름을 완전한 형태로 나타낸다.
● firstdayofweek : 선택적인 인수로 첫째 요일을 나타내는 숫자 값이다. 그 값에 대해서는 아래의 표를 참조하라.

● firstdayofweek 인수
---------------------------------------------------------------------------------------------------
상수 값 설명

vbUseSystem 0 NLS( National Language Support) API 설정 사용
vbSunday 1 일요일
vbMonday 2 월요일
vbTuesday 3 화요일
vbWednesday 4 수요일
vbThursday 5 목요일
vbFriday 6 금요일
vbSaturday 7 토요일
---------------------------------------------------------------------------------------------------

● weekdayname.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
MyDate = #2000-12-25#
Response.Write Weekdayname(Weekday(MyDate))
%>
---------------------------------------------------------------------------------------------------


[그림 2-21] weekdayname.asp 실행 결과


22) Year

연도를 나타내는 정수를 반환한다.

구문 : Year(date)

date 인수는 날짜를 나타내는 식이다. date에 Null이 있다면 Null을 반환한다.

● year.asp
---------------------------------------------------------------------------------------------------
<%@ Language=VBScript %>
<%
Response.Write "지금 시간은 " & Now & " 입니다. <BR>"
Response.Write Year(Now) & "년도 입니다."
%>
---------------------------------------------------------------------------------------------------


[그림 2-22] year.asp 실행 결과


http://www.taeyo.pe.kr/lecture/2_beginner_hwang/4_2.htm
,