功能非常全面的日期处理函数
发布时间:2006-10-14 2:57:55   收集提供:gaoqian
<script language=javascript>
function fnSubmit(strPage)
{
  document.forms[0].action= strPage
  document.forms[0].submit()    
}

</script>
<%

call writedropdowns

Sub writeDropDowns()
  Dim strSelfLink
  strSelfLink = request.servervariables("SCRIPT_NAME")
  response.Write "<form name=dates method=post>" & vbcrlf
  response.Write MonthDropDown("month1",False,request("month1"),strSelfLink) & " " & DayDropDown("day1", "",getDaysInMonth(request("month1"),request("year1")),request("day1")) & " " & YearDropDown("year1","","", request("year1"),strSelfLink) & vbcrlf
  response.Write "</form>"    & vbcrlf
End Sub
        

Function MonthDropDown(strName, blnNum, strSelected, strSelfLink)
  Dim strTemp, i, strSelectedString            
  strTemp = "<select name='" & strName& "' onchange='javascript: fnSubmit(" & chr(34) & strSelfLink & chr(34) & ")'>" & vbcrlf
  strTemp = strTemp & "<option value='" & 0 & "'>" & "Month" & "</option>" & vbcrlf            
  For i = 1 To 12
    If strSelected = CStr(i) Then
    strSelectedString = "Selected"
    Else
    strSelectedString = ""
    End If
            
    If blnNum Then
      strTemp = strTemp & "<option value='" & i & "' " & strSelectedString & " >" & i & "</option>" & vbcrlf            
    Else
    strTemp = strTemp & "<option value='" & i & "' " & strSelectedString & " >" & MonthName(i) & "</option>" & vbcrlf            
    End If
  Next                    
  strTemp = strTemp & "</select>" & vbcrlf    
  MonthDropDown = strTemp
End Function


Function YearDropDown(strName, intStartYear, intEndYear, strSelected, strSelfLink)
  
  Dim strTemp, i, strSelectedString    
  
  If intStartYear = "" Then
    intStartYear = Year(now())
  End If    
    
  If intEndYear = "" Then
    intEndYear = Year(now()) + 9
  End If
    
  strTemp = "<select name='" & strName& "' onchange='javascript: fnSubmit(" & chr(34) & strSelfLink & chr(34) & ")'>" & vbcrlf            
  strTemp = strTemp & "<option value='" & 0 & "'>" & "Year" & "</option>" & vbcrlf            
  For i = intStartYear To intEndYear        
    If strSelected = CStr(i) Then
      strSelectedString = "Selected"
    Else
      strSelectedString = ""
    End If
    strTemp = strTemp & "<option value='" & i & "' " & strSelectedString & " >" & i & "</option>" & vbcrlf                            
   Next                    
   strTemp = strTemp & "</select>" & vbcrlf    
   YearDropDown = strTemp
End Function


Function DayDropDown(strName, intStartDay, intEndDay, strSelected )
    Dim strTemp, i, strSelectedString    
    If intStartDay = "" Then
      intStartDay = 1
    End If    
    
    If intEndDay = "" Then
      intEndDay = getDaysInMonth(Month(now()),Year(now()))
    End If
    
    strTemp = "<select name='" & strName& "'>" & vbcrlf            
    strTemp = strTemp & "<option value='" & 0 & "'>" & "Day" & "</option>" & vbcrlf            
    For i = intStartDay To intEndDay
      If strSelected = CStr(i) Then
        strSelectedString = "Selected"
      Else
        strSelectedString = ""
      End If
      strTemp = strTemp & "<option value='" & i & "' " & strSelectedString & " >" & i & "</option>" & vbcrlf                            
    Next                    
    strTemp = strTemp & "</select>" & vbcrlf    
    DayDropDown = strTemp
End Function


Function getDaysInMonth(strMonth,strYear)
        Dim strDays     
    Select Case CInt(strMonth)
        Case 1,3,5,7,8,10,12:
        strDays = 31
        Case 4,6,9,11:
           strDays = 30
        Case 2:
        If  ( (CInt(strYear) Mod 4 = 0  And  CInt(strYear) Mod 100 <> 0)  Or ( CInt(strYear) Mod 400 = 0) ) Then
          strDays = 29
        Else
          strDays = 28
        End If    
        'Case Else:
    End Select
        
    getDaysInMonth = strDays
End Function    
%>    
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50