날짜와시간함수 h1. 날짜와시간함수 날짜와시간에관련된내용을표현하는함수들도 ASP 에서는중요한비중을가진다. 시스템에서제공하지못하는여러가지기능들을이런함수들을통해서구현이가능하다. 특히날짜연산에대한코드작성시많은도움을얻을수있는날짜와시간함수들에대해서알아보자. CDate Date 하위형식의 Variant 로변환된식을반환한다. 구문 : CDate(date) date 인수는유효한날짜식이면된다. 변환값은컴퓨터의날짜 / 시간설정에따르며짧은날짜표기법으로출력된다. cdate.asp MyDate = "2000 년 12 월 11 일 " Response.Write MyDate & "<BR>" Response.Write CDate(MyDate) [ASP: 그림 2-1] cdate.asp 실행결과 Date 현재시스템의날짜를반환한다. 구문 : Date date.asp Response.Write Date
[ASP: 그림 2-2] date.asp 실행결과 DateAdd 지정된날짜에시간을추가하거나뺀새로운날짜를반환한다. 구문 : DateAdd(interval, number, date) interval : 필수적인인수로 interval 을추가한날짜를나타내는문자식이다. 그값에대해서는아래의표를참조하라. number : 필수적인인수로추가할간격수의수식이다. 수식에서양수는미래의날짜, 음수는과거의날짜이다. date : 필수적인인수로 interval 을추가한날짜를나타내는 Variant 또는리터럴이다. interval 인수 설정설명 yyyy 년 q 분기 m 월 y 일 ( 일년기준 ) d 일 w 요일 ww 주 ( 일년기준 ) h 시 n 분 s 초 dateadd.asp MyDate = Date Response.Write " 오늘날짜 : " & MyDate & "<BR>" Response.Write " 오늘날짜 +3 개월 : " & DateAdd("m",3,MyDate) & "<BR>" Response.Write " 오늘날짜 -3 개월 : " & DateAdd("m",-3,MyDate) & "<BR>"
[ASP: 그림 2-3] dateadd.asp DateDiff 주어지는두날짜의간격을반환한다. 구문 : DateDiff(interval, date1, date2 [,firstdayofweek[asp:, 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 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>" [ASP: 그림 2-4] datediff.asp 실행결과 DatePart 주어진날짜의지정된부분을반환한다. 구문 : DatePart(interval, date[, firstdayofweek[asp:, 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 Today = Now Response.Write " 오늘 " & Today & " 은 " & DatePart("q", Today) & " 분기입니다." [ASP: 그림 2-5] datapart.asp 실행결과 DateSerial 지정된년, 월, 일의 Date 하위형식인 Variant 를반환한다. 즉임의의숫자를입력받아날짜형식으로반환하는함수이다. 구문 : DateSerial(year, month, day) year : 100 에서 9999 까지의수또는수식 month : 모든수식 day : 모든수식 dateserial.asp Response.Write DateSerial(2000+1, 12+3, 2+5)
[ASP: 그림 2-6] dateserial.asp 실행결과 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 Response.Write DateValue("2000 년 12 월 25 일 ") [ASP: 그림 2-7] datevalue.asp 실행결과 Day 날짜를나타내는 1 에서 31 까지의정수를반환한다.
구문 : Day(date) date 인수는날짜를표현하는식이다. date 인수에 Null 이있으면 Null 을반환한다. day.asp Response.Write Day("2000 년 12 월 25 일 ") [ASP: 그림 2-8] day.asp 실행결과 Hour 하루의시간을나타내는 0 에서 23 까지의정수를반환한다. 구문 : Hour(time) time 인수는시간을나타내는식이다. time 이 Null 이면 Null 을반환한다. hour.asp Response.Write " 지금시간은 " & Now & " 입니다. <BR>" Response.Write " 시간은 " & Hour(Now) & " 시입니다." [ASP: 그림 2-9] hour.asp 실행결과
IsDate 한식이날짜로변환될수있는지여부를나타내는부울값을반환한다. 날짜형식을구분할때주로사용한다. 구문 : IsDate(expression) expression 인수는날짜식또는날짜나시간으로인식될수있는문자식이다. IsDate 함수는해당식이날짜이거나유효한날짜로변환될수있는경우 True 를, 그렇지않으면 False 를반환합니다. Microsoft Windows 의유효한날짜범위는서기 100 년 1 월 1 일에서서기 9999 년 12 월 31 일까지이지만, 운영체제에따라그범위가달라진다. isdate.asp 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 [ASP: 그림 2-10] isdate.asp 실행결과 Minute 시간의분을나타내는 0 에서 59 까지의정수를반환한다. 구문 : Minute(time) time 인수는시간을나타내는식이다. time 에 Null 이있으면 Null 을반환한다. minute.asp Response.Write " 지금시간은 " & Now & " 입니다. <BR>" Response.Write " 분은 " & Minute(Now) & " 분입니다."
[ASP: 그림 2-11] minute.asp 실행결과 Month 년의월을나타내는 1 에서 12 까지의정수를반환한다. 구문 : Month(date) date 인수는날짜를나타내는식이다. date 에 Null 이있으면 Null 을반환한다. month.asp Response.Write " 지금시간은 " & Now & " 입니다. <BR>" Response.Write Month(Now) & " 월입니다." [ASP: 그림 2-12] month.asp 실행결과 MonthName 지정한월을나타내는문자열을반환한다. 구문 : MonthName(month[ASP:, abbreviate]) month : 필수적인인수로 1 월은 1, 2 월은 2, 등등으로월을나타내는숫자이다. abbreviate : 선택적인인수로월이름을약어형태로표시할지여부를나타내는부울값이다. 생략하면기본값인 False 가되며, 월이름을완전한형태로표시한다.
monthname.asp Response.Write MonthName(12, true) & "<BR>" Response.Write MonthName(12, false) & "<BR>" [ASP: 그림 2-13] monthname.asp 실행결과 Now 컴퓨터의시스템날짜와시간에따른현재날짜와시간을반환한다. 구문 : Now now.asp Response.Write " 지금시간은 " & Now & " 입니다." [ASP: 그림 2-14] now.asp 실행결과 Second
분의초를나타내는 0 에서 59 까지의정수를반환한다. 구문 : Second(time) time 인수는시간을나타내는식이다. time 인수에 Null 이있으면 Null 을반환한다. second.asp Response.Write " 지금시간은 " & Now & " 입니다. <BR>" Response.Write Second(Now) & " 초입니다." [ASP: 그림 2-15] second.asp 실행결과 Time 현재시스템시간을나타내는 Date 하위형식의 Variant 를반환한다. 구문 : Time time.asp Response.Write " 지금시간은 " & Time & " 입니다. <BR>"
[ASP: 그림 2-16] time.asp 실행결과 Timer 자정이후경과한초수를나타내는 Single 값을반환한다. 구문 : Timer timer.asp Response.Write Timer & " 초경과입니다. <BR>" [ASP: 그림 2-17] timer.asp 실행결과 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 Response.Write TimeSerial(23, 12, 11) [ASP: 그림 2-18] timeserial.asp 실행결과 TimeValue 시간을포함하는 Date 하위형식의 Variant 를반환한다. 구문 : TimeValue(time) 대개 time 인수는 0:00:00( 오전 12:00:00) 에서 23:59:59( 오후 11:59:59) 까지의시간을나타내는문자식으로이범위에있는시간을나타내는식도 time 인수가될수있다. time 에 Null 이있으면 Null 을반환한다. timevalue.asp Response.Write TimeValue(" 오후 11:11:11")
[ASP: 그림 2-19] timevalue.asp 실행결과 Weekday 요일을나타내는정수를반환한다. 구문 : Weekday(date, [ASP: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 MyDate = #2000-12-25# Response.Write Weekday(MyDate)
[ASP: 그림 2-20] weekday.asp 실행결과 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 MyDate = #2000-12-25# Response.Write Weekdayname(Weekday(MyDate))
[ASP: 그림 2-21] weekdayname.asp 실행결과 Year 연도를나타내는정수를반환한다. 구문 : Year(date) date 인수는날짜를나타내는식이다. date 에 Null 이있다면 Null 을반환한다. year.asp Response.Write " 지금시간은 " & Now & " 입니다. <BR>" Response.Write Year(Now) & " 년도입니다." [ASP: 그림 2-22] year.asp 실행결과