[ASP] 产生一个标准的日历数组

'========================================
'函数名称:CalcDate
'函数功能:产生日历数组
'参    数:arrDate要返回的数组
'返 回 值:无
'作    成:D.Densin
'日    期:2007-4-24 03:23:25
'========================================
Sub CalcDate(arrDate,dteSYS)
 Dim l_strFirstDay         '当月第一天
 Dim l_strLastDay          '下月第一天
 Dim l_intCountDay         '总天数
 Dim l_loopi,l_loopj       '循环变量
 Dim l_TempX,l_TempY       '临时变量
 '参数控制,如果不传递指定日期,则使用WEB SERVER上的时间.
 If dteSYS = "" Or IsNull(dteSYS) Then
  dteSYS = Now()
 Else
  If Not IsDate(dteSYS) Then
   Response.Write "产生日历数组函数,第二参数错误!"
   Response.End()
  End If
 End If
 '取得基础的参照日期.
 l_strFirstDay=Cdate(Year(dteSYS)& "-" &Month(dteSYS) & "-01")
 l_strLastDay =DateAdd("m",1,l_strFirstDay)
 l_intCountDay = DateDiff("d",l_strFirstDay,l_strLastDay)
 '初始化数组,确定当月有多少周
 ReDim arrDate(6,4)
 '循环计算每一天在数组中的位置.
 For  l_loopi=0 To l_intCountDay-1
  l_TempX=Cint(Weekday(DateAdd("d",l_loopi,l_strFirstDay),3)) mod 7
  '防止1号刚好是星期日时产生进位导致的数组Y轴超界.
  If Weekday(l_strFirstDay,3)<>7 Then
   l_TempY=Fix((Weekday(l_strFirstDay,3) + l_loopi)/7)
  Else
   l_TempY=Fix(l_loopi/7)
  End If
  If l_TempY > Ubound(arrDate,2) Then
   ReDim Preserve arrDate(6,l_TempY)
  End If
  arrDate(l_TempX,l_TempY)=l_loopi+1
 Next
End Sub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值