| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 732 人关注过本帖
标题:VB轮流显示值班人
只看楼主 加入收藏
lzb3158
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2014-5-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
VB轮流显示值班人
在我们车间里有4个人需要轮流值班,可不可以把这4个人写在程序文件夹内的a.txt里如  张三、李四、王二、刘五.每次值班都要去想该谁值班或者去翻值班记录,很麻烦,如果能够显示在电脑上提醒该多好哦,请各位高手给个源码,小弟在次写过了。
 要求: 1、从2015-1-31这天开始由张三值班,2月1日由李四值班  2月2日由王二值班 2月3日这天由刘五值班,每天显示在标签上。
        2、不用每月刻意的去排班,而是一启动程序,程序就自动从2015年1月31日这天开始计算,一直计算到本地计算机当天的日期后,显示该谁值班。

[ 本帖最后由 lzb3158 于 2015-1-31 21:33 编辑 ]
搜索更多相关主题的帖子: 标签 文件夹 计算机 
2015-01-31 21:32
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:7 
没时间去弄,算法原理如下:

按日期做减少,计算经过了多少天,当然,这里面没有办法计算节假日,如果要计算节假日,需要另外有一个列表进行排班,那个最好就是使用 数据库。

算法很简单,建一个数组
Z(0)="张三"
Z(1)="李四"
Z(2)="王二"
Z(3)="刘五"

然后用当前日期减去 2015-1-31
减出来的天数,整除以数据总元素取余 ,这里是4个,
然后 查表, 0 就表示张三,1表示李四,2表示王二,3表示刘五,不会出现 4的情况。

-----------------------------------
按成 EXCEL 来做,就是这样的
A2,输入基准日期:2015-1-31
B2-B5:0-3
C2-C5:四个人的名字

我结果放在 E列和F列。
E2= "=TODAY()"
F2= "=LOOKUP((E2-$A$2),B2:B5,C2:C5)"
公式不含前后引号。
E2是当前日期,F2是查找引用,想了解用法,百度去。

授人于鱼,不如授人于渔
早已停用QQ了
2015-02-01 17:22
lzb3158
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2014-5-21
收藏
得分:0 
不懂!请其它高手写个代码,这样我就看看电脑就知道今天该谁值班!
Private Sub Command1_Click()
Dim Str As String
Str = Text1.Text
Label1.Caption = DateDiff("d", CDate(Format(Now, "YYYY-MM-DD")), CDate(Format(Str, "yyyy-mm-dd")))
End Sub
这是计算天数的代码,能不能再加一段代码来根据Label1.Caption=数据, 来循环读取 张三、李四、王二、刘五,比如Label1.Caption = 8  那就从张三开始一直循环读8次,那就显示 刘五。

[ 本帖最后由 lzb3158 于 2015-2-1 20:40 编辑 ]
2015-02-01 20:39
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
Label2.Caption
j = (Label1.Caption -1) mod 4
Label2.Caption  =z(j)
在手机上,好烦,自己多想想

授人于鱼,不如授人于渔
早已停用QQ了
2015-02-01 20:56
lzb3158
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2014-5-21
收藏
得分:0 
不懂
2015-02-02 07:13
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:7 
风吹过b 版主说了,如果没有节假日表,不能自动排班。

大开眼界
2015-02-02 08:26
lzb3158
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2014-5-21
收藏
得分:0 
回复 6楼 lianyicq
没有节假日,我们这里是私人企业,天天晚上20:00-22:00都要轮流值班。
2015-02-02 12:24
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
试试这个代码,自己按需要修改
程序代码:
Option Explicit
Private Sub Form_Load()
Dim startDate
Dim nowDate
Dim interval As Long
Dim dutyMan As Integer
Dim order(0 To 3) As String
order(0) = "张三"
order(1) = "李四"
order(2) = "赵五"
order(3) = "刘六"
startDate = DateSerial(2015, 1, 31)
nowDate = Date
interval = nowDate - startDate
dutyMan = interval Mod 4
Form1.Caption = "今天是" & Date & ",该" & order(dutyMan) & "值班"
End Sub


大开眼界
2015-02-02 13:15
事业男儿
Rank: 2
等 级:论坛游民
帖 子:317
专家分:14
注 册:2007-4-25
收藏
得分:7 
回复 8楼 lianyicq
丁一个  这个源码还可以!

[ 本帖最后由 事业男儿 于 2015-2-2 17:31 编辑 ]
2015-02-02 17:29
lzb3158
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2014-5-21
收藏
得分:0 
lianyicq版主!
2015-02-02 17:37
快速回复:VB轮流显示值班人
数据加载中...
 
   



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

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