Office中国论坛/Access中国论坛

标题: 请教各位高手 [打印本页]

作者: 逸致1    时间: 2003-9-10 19:35
标题: 请教各位高手
请教以下两个问题:
1、如何自动计算两个日期之间的工作日天数,例如:一个文本控件是“开始日期”,一个文本控件是“结束日期”,一个文本控件是“工作日天数”,在“开始日期”和“结束日期”中输入日期后,在“工作日天数”中自动计算出去除星期六,星期日的天数。
2、我部在办事承诺中,有一个办结天数的规定,即办理一个卷宗必须在法定时间天数内办结。例如办结天数规定是7个工作日,我想利用三个图标(绿灯、黄灯、红灯),在“开始日期”中输入日期后,第6天时,若在“结束日期”中未输入日期时,该条记录旁自动显示黄灯图标,第7天时,若在“结束日期”中未输入日期时,该条记录旁自动显示黄灯,第8天开始以后,若在“结束日期”中未输入日期时,该条记录旁自动显示红灯。若在7天范围内的任意一天,在“结束日期”输入日期时,该条记录旁自动显示绿灯。计算天数时同样是去除星期六、星期天的工作日天数。

谢谢。
作者: chenghai    时间: 2003-9-10 23:42
1、转来一段代码(自己没用过),你看看:
  Dim date1 As Date, date2 As Date, Weeks As Integer, tmpDate As Date
  date1 = Me.txtDate1
  date2 = Me.txtDate2
  
  '日期相隔天数
  Me.txtdates = date2 - date1 + 1
  
  Weeks = 0
  For tmpDate = date1 To date2
    If Format(tmpDate, "aaaa") = "星期六" Or Format(tmpDate, "aaaa") = "星期日" Then
      Weeks = Weeks + 1
    End If
  Next
  
  '星期六 日数
  Me.txtWeeks = Weeks
作者: chenghai    时间: 2003-9-10 23:43
第2个问题,属于第1个问题的应用。
只要会算工作日,应该很简单的。
作者: 逸致1    时间: 2003-9-11 04:48
谢谢,我验证一下。
作者: 方漠    时间: 2003-9-12 10:44
有这么麻烦吗?
用DATEDIFF()即可轻松搞定.
作者: 逸致    时间: 2003-9-17 21:08
请教,请说详细一点。谢谢。
作者: chenghai    时间: 2003-9-17 23:30
datediff()可以直接计算工作日吗?
好像不可以的:如果利用
datediff("d",[开始],[结束])-datediff("w",[开始],[结束])*2
这样算出的工作日是会有误差的。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3