<% Function fncGetDayOrdinal( _ ByVal intDay _ ) ' Accepts a day of the month as an integer and returns the ' appropriate suffix Dim strOrd Select Case intDay Case 1, 21, 31 strOrd = "st" Case 2, 22 strOrd = "nd" Case 3, 23 strOrd = "rd" Case Else strOrd = "th" End Select fncGetDayOrdinal = strOrd End Function ' fncGetDayOrdinal Function fncFmtDate( _ ByVal strDate, _ ByRef strFormat _ ) ' Accepts strDate as a valid date/time, ' strFormat as the output template. ' The function finds each item in the ' template and replaces it with the ' relevant information extracted from strDate ' Template items (example) ' %m Month as a decimal (02) ' %B Full month name (February) ' %b Abbreviated month name (Feb ) ' %d Day of the month (23) ' %O Ordinal of day of month (eg st or rd or nd) ' %j Day of the year (54) ' %Y Year with century (1998) ' %y Year without century (98) ' %w Weekday as integer (0 is Sunday) ' %a Abbreviated day name (Fri) ' %A Weekday Name (Friday) ' %H Hour in 24 hour format (24) ' %h Hour in 12 hour format (12) ' %N Minute as an integer (01) ' %n Minute as optional if minute <> 0 ' %S Second as an integer (55) ' %P AM/PM Indicator (PM) On Error Resume Next Dim intPosItem Dim int12HourPart Dim str24HourPart Dim strMinutePart Dim strSecondPart Dim strAMPM ' Insert Month Numbers strFormat = Replace(strFormat, "%m", _ DatePart("m", strDate), 1, -1, vbBinaryCompare) ' Insert non-Abbreviated Month Names strFormat = Replace(strFormat, "%B", _ MonthName(DatePart("m", strDate), _ False), 1, -1, vbBinaryCompare) ' Insert Abbreviated Month Names strFormat = Replace(strFormat, "%b", _ MonthName(DatePart("m", strDate), _ True), 1, -1, vbBinaryCompare) ' Insert Day Of Month strFormat = Replace(strFormat, "%d", _ DatePart("d",strDate), 1, _ -1, vbBinaryCompare) ' Insert Day of Month Ordinal (eg st, th, or rd) strFormat = Replace(strFormat, "%O", _ fncGetDayOrdinal(Day(strDate)), _ 1, -1, vbBinaryCompare) ' Insert Day of Year strFormat = Replace(strFormat, "%j", _ DatePart("y",strDate), 1, _ -1, vbBinaryCompare) ' Insert Long Year (4 digit) strFormat = Replace(strFormat, "%Y", _ DatePart("yyyy",strDate), 1, _ -1, vbBinaryCompare) ' Insert Short Year (2 digit) strFormat = Replace(strFormat, "%y", _ Right(DatePart("yyyy",strDate),2), _ 1, -1, vbBinaryCompare) ' Insert Weekday as Integer (eg 0 = Sunday) strFormat = Replace(strFormat, "%w", _ DatePart("w",strDate,1), 1, _ -1, vbBinaryCompare) ' Insert Abbreviated Weekday Name (eg Sun) strFormat = Replace(strFormat, "%a", _ WeekdayName(DatePart("w",strDate,1),True), 1, _ -1, vbBinaryCompare) ' Insert non-Abbreviated Weekday Name strFormat = Replace(strFormat, "%A", _ WeekdayName(DatePart("w",strDate,1),False), 1, _ -1, vbBinaryCompare) ' Insert Hour in 24hr format str24HourPart = DatePart("h",strDate) If Len(str24HourPart) < 2 Then str24HourPart = "0" & _ str24HourPart strFormat = Replace(strFormat, "%H", str24HourPart, 1, _ -1, vbBinaryCompare) ' Insert Hour in 12hr format int12HourPart = DatePart("h",strDate) Mod 12 If int12HourPart = 0 Then int12HourPart = 12 strFormat = Replace(strFormat, "%h", int12HourPart, 1, _ -1, vbBinaryCompare) ' Insert Minutes strMinutePart = DatePart("n",strDate) If Len(strMinutePart) < 2 Then _ strMinutePart = "0" & strMinutePart strFormat = Replace(strFormat, "%N", strMinutePart, _ 1, -1, vbBinaryCompare) ' Insert Optional Minutes If CInt(strMinutePart) = 0 Then strFormat = Replace(strFormat, "%n", "", 1, _ -1, vbBinaryCompare) Else If CInt(strMinutePart) < 10 Then _ strMinutePart = "0" & strMinutePart strMinutePart = ":" & strMinutePart strFormat = Replace(strFormat, "%n", strMinutePart, _ 1, -1, vbBinaryCompare) End If ' Insert Seconds strSecondPart = DatePart("s",strDate) If Len(strSecondPart) < 2 Then _ strSecondPart = "0" & strSecondPart strFormat = Replace(strFormat, "%S", strSecondPart, 1, _ -1, vbBinaryCompare) ' Insert AM/PM indicator If DatePart("h",strDate) >= 12 Then strAMPM = "PM" Else strAMPM = "AM" End If strFormat = Replace(strFormat, "%P", strAMPM, 1, _ -1, vbBinaryCompare) fncFmtDate = strFormat 'If there is an error output its value If Err.number <> 0 Then Response.Clear Response.Write "ERROR " & Err.number & _ ": fmcFmtDate - " & Err.description Response.Flush Response.End End If End Function ' fncFmtDate %>