[Classic ASP] 날짜,시간 처리 함수들
그 동안 만들어 사용하던 날짜,시간 관련 함수들을 모아 봤다.
ASP에선 날짜/시간을 출력하는 경우 시스템의 날짜형식으로 출력이 된다.
적합한 모양으로 바꾸어 출력 되도록 하는것들이 대부분 함수들이다.
모아보니 함수들이 많은것 같은데 필요할 때마다 추가한것이라 한번씩은 용도가 있었던것이라 참고 하시거나 사용안할듯 한것들은 제거 하여 재구성하여 사용 하길 추천 한다.
GetFullDateTimeH(), GetFullDateH() : 구분자를 "-"로 출력 한다.
** in-line query 로 DB에 저장하는 경우 이 형식으로 날짜를 표현해야 한다.
GetFullDateTimeON() : 날짜/시간의 숫자 값만 출력한다.
** 임시파일의 파일명 생성시 4~6자리의 랜덤 값과 사용하면 중복을 쉽게 피할 수 있다.
GetMonthLastDate() : 해당월의 마지막일자를 구한다.
** 기간 설정 시 유용 하다.
CDateWithCheck() : 변수가 유효한 날짜로 변경이 가능한 경우에만 변경된다.
** 날짜 형식은 javascript에서 유효성을 확인 하지만 실제 데이타 처리시에도 반드시 확인 하길 추천 한다.
Date연산 함수들 : 자주 사용되는 연산 규칙들을 함수로 구성 했다.
UNIX Time : 초단위로 출력되는 숫자로 경과시간을 초단위로 나타낼 때 유효하다
** 경과 시간 구하기
iPastSecond = DateTime2UnixTime( dEnd ) - DateTime2UnixTime( dStart )
'============================================
' DateTime functions
'============================================
function GetFullDateTime( dNow )
GetFullDateTime = Year(dNow)&"."&FillZero(Month(dNow),2)&"."&FillZero(Day(dNow),2) &" "& FillZero(Hour(dNow),2)&":"&FillZero(Minute(dNow),2)&":"&FillZero(Second(dNow),2)
end Function
function GetFullDateTimeT( dNow )
GetFullDateTimeT = Year(dNow)&"-"&FillZero(Month(dNow),2)&"-"&FillZero(Day(dNow),2) &"T"& FillZero(Hour(dNow),2)&":"&FillZero(Minute(dNow),2)&":"&FillZero(Second(dNow),2)
end Function
function GetFullDateTimeH( dNow )
GetFullDateTimeH = Year(dNow)&"-"&FillZero(Month(dNow),2)&"-"&FillZero(Day(dNow),2) &" "& FillZero(Hour(dNow),2)&":"&FillZero(Minute(dNow),2)&":"&FillZero(Second(dNow),2)
end Function
function GetFullDateTimeKor( dNow )
GetFullDateTimeKor = Year(dNow)&"년 "&Month(dNow)&"월 "&Day(dNow)&"일 ("& WeekDayName(Weekday(dNow), True)&") "& FillZero(Hour(dNow),2)&":"&FillZero(Minute(dNow),2)&":"&FillZero(Second(dNow),2)
end Function
function GetFullDate( dNow )
GetFullDate = Year(dNow)&"."&FillZero(Month(dNow),2)&"."&FillZero(Day(dNow),2)
end Function
function GetFullDateH( dNow )
GetFullDateH = Year(dNow)&"-"&FillZero(Month(dNow),2)&"-"&FillZero(Day(dNow),2)
end Function
function GetFullDateKor( dNow )
GetFullDateKor = Year(dNow)&"년 "&Month(dNow)&"월 "&Day(dNow)&"일"
end Function
'===== only numeric
function GetFullDateTimeON( dNow )
GetFullDateTimeON = Year(dNow) & FillZero(Month(dNow),2) & FillZero(Day(dNow),2) & FillZero(Hour(dNow),2) & FillZero(Minute(dNow),2) & FillZero(Second(dNow),2)
end Function
function GetFullDateTimeONHM( dNow )
GetFullDateTimeONHM = Year(dNow) & FillZero(Month(dNow),2) & FillZero(Day(dNow),2) & FillZero(Hour(dNow),2) & FillZero(Minute(dNow),2)
end Function
function GetTime( dNow )
GetTime = FillZero(Hour(dNow),2) &":"& FillZero(Minute(dNow),2) &":"& FillZero(Second(dNow),2)
end function
function GetTimeON( dNow )
GetTimeON = FillZero(Hour(dNow),2) & FillZero(Minute(dNow),2) & FillZero(Second(dNow),2)
end function
function GetFullDateON( dNow )
GetFullDateON = Year(dNow) & FillZero(Month(dNow),2) & FillZero(Day(dNow),2)
end Function
function GetFullDateON6( dNow )
GetFullDateON6 = Right(Year(dNow),2) & FillZero(Month(dNow),2) & FillZero(Day(dNow),2)
end Function
function ONDateTime2DateTime( cDateTime14 )
ONDateTime2DateTime = ONDate2DateTime(Mid(cDateTime14,1,8))&" "&ONTime2DateTime(Mid(cDateTime14,9,6))
end function
function ONDate2DateTime( cDate8 )
dim cReturn
if (cDate8="") or ISNull(cDate8) then
cReturn = ""
else
cReturn = Mid(cDate8,1,4) &"-"& Mid(cDate8,5,2) &"-"& Mid(cDate8,7,2)
end if
ONDate2DateTime = cReturn
end function
function ONTime2DateTime( cTime6 )
dim cReturn
if (cTime6="") or ISNull(cTime6) then
cReturn = ""
else
cReturn = Mid(cTime6,1,2) &":"& Mid(cTime6,3,2) &":"& Mid(cTime6,5,2)
end if
ONTime2DateTime = cReturn
end function
function GetYearMonth( dNow )
GetYearMonth = FillZero(Year(dNow),4)&"/"& FillZero(Month(dNow),2)
end Function
function GetMonthDay( dNow )
GetMonthDay = FillZero(Month(dNow),2)&"/"& FillZero(Day(dNow),2)
end Function
function GetHourMinute( dNow )
if IsNull(dNow) then
GetHourMinute = ""
else
GetHourMinute = FillZero(Hour(dNow),2)&":"& FillZero(Minute(dNow),2)
end if
end Function
function GetHourMinuteSecond( dNow )
if IsNull(dNow) then
GetHourMinuteSecond = ""
else
GetHourMinuteSecond = FillZero(Hour(dNow),2)&":"& FillZero(Minute(dNow),2)&":"& FillZero(Second(dNow),2)
end if
end function
function CDateWithCheck( cDate8 )
dim cDate10
cDate10 = ONDate2DateTime(cDate8)
if IsDate( cDate10 ) then
CDateWithCheck = CDate( cDate10 )
else
CDateWithCheck = null
end if
end function
function CDateWithCheck10( cDate10 )
if IsDate( cDate10 ) then
CDateWithCheck10 = CDate( cDate10 )
else
CDateWithCheck10 = null
end if
end function
function CheckDateTime( cDate8 )
CheckDateTime = IsDate( ONDate2DateTime(cDate8) )
end function
function CheckDateTimeNull( cDate8 )
CheckDateTimeNull = (IsDate( ONDate2DateTime(cDate8) ) or IsNull(cDate8))
end function
function GetMonthLastDate( iYear, iMonth )
dim cNextMonthFistDate
if (iMonth=12) then
cNextMonthFistDate=FillZero((iYear+1),4)&"0101"
else
cNextMonthFistDate=FillZero(iYear,4)&FillZero((iMonth+1),2)&"01"
end if
GetMonthLastDate = GetFullDateON(CDateWithCheck(cNextMonthFistDate)-1)&" 23:59:59"
end function
function GetMonthLastDay( iYear, iMonth )
dim cNextMonthFistDate
if (iMonth=12) then
cNextMonthFistDate=FillZero((iYear+1),4)&"-01-01"
else
cNextMonthFistDate=FillZero(iYear,4)&"-"&FillZero((iMonth+1),2)&"-01"
end if
GetMonthLastDay = Day(CDate(cNextMonthFistDate)-1)
end function
function CmpStartEndMonth( iStartYear, iStartMonth, iEndYear, iEndMonth )
dim iCmpStartDate, iCmpEndDate
iCmpStartDate = CintZero(FillZero(iStartYear,4)&FillZero(iStartMonth,2))
iCmpEndDate = CIntZero(FillZero(iEndYear,4)&FillZero(iEndMonth,2))
CmpStartEndMonth = CBool(iCmpStartDate > iCmpEndDate)
end function
'== Date add functions
function YearMonthAddMonthGetYear( iYear, iMonth, iAddMonth )
YearMonthAddMonthGetYear = Year(YearMonthAddMonth( iYear, iMonth, iAddMonth ))
end function
function YearMonthAddMonthGetMonth( iYear, iMonth, iAddMonth )
YearMonthAddMonthGetMonth = Month(YearMonthAddMonth( iYear, iMonth, iAddMonth ))
end function
function YearMonthAddMonth( iYear, iMonth, iAddMonth )
YearMonthAddMonth = DateAdd( "m", iAddMonth, CDate(FillZero(iYear,4)&"-"&FillZero(iMonth,2)&"-01") )
end function
function AddMonthGetMonth( dDate, iMonth )
AddMonthGetMonth = Month(AddMonth( dDate, iMonth ))
end function
function AddMonthGetYear( dDate, iMonth )
AddMonthGetYear = Year(AddMonth( dDate, iMonth ))
end function
function AddMonth( dDate, iMonth )
AddMonth = DateAdd( "m", iMonth, dDate )
end function
'== UNIX Time
function DateTime2UnixTime( dDateTime )
DateTime2UnixTime = DateDiff( "s", "01/01/1970 00:00:00", dDateTime )
end function
function UnixTime2DateTime( iUnixTime )
UnixTime2DateTime = DateAdd( "s", iUnixTime, "01/01/1970 00:00:00" )
end function
function MonthNameEng( iMonth )
dim cReturn
select case iMonth
case 1 cReturn = "January"
case 2 cReturn = "February"
case 3 cReturn = "March"
case 4 cReturn = "April"
case 5 cReturn = "May"
case 6 cReturn = "June"
case 7 cReturn = "July"
case 8 cReturn = "August"
case 9 cReturn = "September"
case 10 cReturn = "October"
case 11 cReturn = "November"
case 12 cReturn = "December"
end select
MonthNameEng = cReturn
end function
저작권자 © WDEV, 무단전재 및 재배포 금지

