| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 638 人关注过本帖
标题:求助一段代码
只看楼主 加入收藏
shenyixi
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-11-1
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
求助一段代码
有一张表中,2个字段:生成日期,完成日期

如何求完成日期和生成日期之间的平均值?
要求计算工作日的平均值,即 不包括周六和周日


最好还能去掉黄金周


多谢!!!
搜索更多相关主题的帖子: 代码 
2009-11-01 00:58
gdy0349
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:上海
等 级:版主
威 望:11
帖 子:223
专家分:676
注 册:2008-11-12
收藏
得分:10 
你要的平均值是个数值还是个日期?
对于你说的去掉周末和节假日最好再维护一张表,把周末和节假日去掉
2009-11-01 14:33
shenyixi
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-11-1
收藏
得分:0 
如:
生成日期 20091008
完成日期 20091013

他的时效就是3天 因为去掉了周末

大虾请说的具体点
我是新手

多谢!
2009-11-01 14:52
msgj
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:190
专家分:914
注 册:2009-10-3
收藏
得分:10 
给你段代码参考:
Private Sub Command1_Click()
hj = 0
rs.Open "select 生成日期, 完成日期  from 表1", cn, adOpenKeyset, adLockOptimistic
If rs.BOF = False And rs.EOF = False Then
   rs.MoveFirst
   Do While rs.EOF = False
      n = DateDiff("d", rs.Fields("生成日期"), rs.Fields("完成日期"))
      d = n
      For i = 0 To n - 1
          If Weekday(rs.Fields("生成日期") + i, vbMonday) = 6 Then d = d - 1
          If Weekday(rs.Fields("生成日期") + i, vbMonday) = 7 Then d = d - 1
          If Month(rs.Fields("生成日期") + i) = 1 And Day(rs.Fields("生成日期") + i) < 4 And Weekday(rs.Fields("生成日期") + i, vbMonday) <> 6 And Weekday(rs.Fields("生成日期") + i, vbMonday) <> 7 Then d = d - 1  '五一
          If Month(rs.Fields("生成日期") + i) = 5 And Day(rs.Fields("生成日期") + i) < 4 And Weekday(rs.Fields("生成日期") + i, vbMonday) <> 6 And Weekday(rs.Fields("生成日期") + i, vbMonday) <> 7 Then d = d - 1  '十月一
          '各种假日根据实际自己加入吧
      Next
      hj = hj + d
      rs.MoveNext
   Loop
   pj = hj / rs.RecordCount
   Text1.Text = pj
End If
rs.Close
End Sub
2009-11-01 15:42
gdy0349
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:上海
等 级:版主
威 望:11
帖 子:223
专家分:676
注 册:2008-11-12
收藏
得分:0 
你先等等,我明天到公司找一张维护好的节假日表给你,然后再写个sql给你
2009-11-01 19:33
gdy0349
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:上海
等 级:版主
威 望:11
帖 子:223
专家分:676
注 册:2008-11-12
收藏
得分:0 
我先给你发一张我们维护好的表,现只给你提供2008年后的数据,第一个字段代表星期,第二个1代表休息日2代表工作日,第三个字段代表时间
把这个表和你的表关联一下,相信你也会写sql了
节假日.rar (17.64 KB)
2009-11-02 10:59
快速回复:求助一段代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035738 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved