Foxtable(狐表)用户栏目专家坐堂 → 时间计划


  共有2171人关注过本帖树形打印复制链接

主题:时间计划

美女呀,离线,留言给我吧!
cjl333333333
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:200 积分:1706 威望:0 精华:0 注册:2015/2/3 17:04:00
时间计划  发帖心情 Post By:2018/8/29 0:51:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.rar


请教老师,这个项目我想通过计算时间的按扭,根据输入的日期 每天开始时间及结束时间计算“计划是间”及“完在时间”,请教老师这代码得怎么写?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/29 9:58:00 [只看该作者]

参考代码,细节或效率自己调整

 


Dim kssj As Date = "2018-08-29"
Dim mtks As Date = "08:00"
Dim mtjs As Date = "17:30"
Dim d As Date = new Date(kssj.year, kssj.month, kssj.day, mtks.hour, mtks.Minute, 0)
Dim sp1 As TimeSpan = mtks.AddDays(1)-mtjs
Dim sp2 As TimeSpan = mtjs-mtks
Dim t As Table = Tables("表A")
For Each r As Row In t.Rows
    r("计划生产时间") = d
    Dim sj As Double = r("额定任务时间")
    Do While sj > 0
        d = d.AddSeconds(60*30)
        If format(d, "HHmm") > Format(mtjs, "HHmm") Then
            d = d.AddSeconds(sp1.TotalSeconds)
        End If
        sj = sj - 60*30
    Loop
    r("计划完成时间") = d
Next

 


 回到顶部
美女呀,离线,留言给我吧!
cjl333333333
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:200 积分:1706 威望:0 精华:0 注册:2015/2/3 17:04:00
  发帖心情 Post By:2018/8/29 16:56:00 [只看该作者]

解决了,谢谢老师


 回到顶部
美女呀,离线,留言给我吧!
cjl333333333
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:200 积分:1706 威望:0 精华:0 注册:2015/2/3 17:04:00
  发帖心情 Post By:2018/9/6 18:37:00 [只看该作者]

老师,不好意思,还得再问你一下,这个代码我最近发现,它只能计算整点的,比如我上班是按排8:30分的,结构它总是显示从8:00开始计算?请问这怎么回事?再加上这段代码中,60*30这个是什么意思?


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/6 20:14:00 [只看该作者]

1、

 

Dim mtks As Date = "08:00"

改成

 

Dim mtks As Date = "08:30"


 

2、d = d.AddSeconds(60*30)

 

意思是,每次增加30分钟,比较是否大于下班时间,如果下班了,就累计多加1天

[此贴子已经被作者于2018/9/6 20:14:00编辑过]

 回到顶部
美女呀,离线,留言给我吧!
cjl333333333
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:200 积分:1706 威望:0 精华:0 注册:2015/2/3 17:04:00
  发帖心情 Post By:2018/9/7 11:35:00 [只看该作者]

老师,我在 Dim mtks As Date 是设置了变量,但不管我变量里是输入08:00还是08:30它都会变成08:00显示
 Dim RQ As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker3")
            Dim SSJ As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker1")
            Dim XSJ As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker2")
            
        
Dim T As String = CurrentTable.Name
            Dim kssj As Date = RQ.Value
            Dim mtks As Date =  SSJ.Value
            Dim mtjs As Date =  XSJ.Value
            Dim d As Date = new Date(KSSJ.year, KSSJ.month, KSSJ.day, MTKS.hour, MTJS.Minute, 0)
            Dim sp1 As TimeSpan = mtks.AddDays(1)-mtjs
            Dim sp2 As TimeSpan = mtjs-mtks
            Dim t1 As Table = Tables(T)
            For Each r As Row In t1.Rows
                r("计划生产时间") = d
                Dim sj As Double = r("额定生产时间")
                Do While sj > 0
                    d = d.AddSeconds(60*30)
                    If format(d, "HHmm") > Format(mtjs, "HHmm") Then
                        d = d.AddSeconds(sp1.TotalSeconds)
                    End If
                    sj = sj - 60*30
                Loop
                r("计划完成时间") = d
            Next
我代码是改成这样的。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/7 11:59:00 [只看该作者]

如果你直接改成下面这样测试,有没有问题?

 

Dim mtks As Date = "08:30"

 


 回到顶部
美女呀,离线,留言给我吧!
cjl333333333
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:200 积分:1706 威望:0 精华:0 注册:2015/2/3 17:04:00
  发帖心情 Post By:2018/9/7 22:28:00 [只看该作者]

老师,改为08:30 就可以的。


 回到顶部