最近在细化机房收费系统时,发现在下机窗体出现了很多消费时间为负值的情况,有时还会弹出Bug,仔细一看原来是跨日期的消费时间问题,那么如何设置跨日期的下机呢?在机房收费系统中的MDI 窗体如何运用呢?下面就这两个问题进行梳理分享。
一、跨日期的下机
核心代码如下:
'判断是否跨日期下机
diffday = DateDiff("d", txtondate.Text, txtoffdate.Text) '判断是否跨日期=下机日期减去上机日期
If diffday = 0 Then '如果没有跨日期
timediff = DateDiff("n", txtontime.Text, txtofftime.Text) '计算上下机时间差
ElseIf diffday = 1 Then '如果跨一天
lasttime = DateDiff("n", txtontime.Text, i) '计算昨天的上机时间:23:59:59-昨天的上机时间
todaytime = DateDiff("n", 0, txtofftime.Text) '计算今天的上机时间即今天的时间
timediff = lasttime + todaytime '跨日期上机时间=昨天上机时间+今天上机时间
ElseIf diffday > 1 Then
lasttime = DateDiff("n", txtontime.Text, i)
todaytime = DateDiff("n", 0, txtofftime.Text)
lastday = (diffday - 1) * 1440 '跨日期大于一天的则在上一步的基础上加上一天的分钟数1440分钟
timediff = lasttime + todaytime + lastday '跨多日期上机时间=隔天上机时间+整天的上机时间+今天上机时间
End If
可能我的逻辑有些啰嗦,还望亲们多多指教^_^