最近在细化机房收费系统时,发现在下机窗体出现了很多消费时间为负值的情况,有时还会弹出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
可能我的逻辑有些啰嗦,还望亲们多多指教^_^
二、MDI窗体的运用以及与子窗体的交互
1、MDI窗体中不能直接添加控件,需要添加一个PictureBox ,在PictureBox上面创建控件。
2、运行时发现子窗体没有显示出来。
其实是显示出来了,只是被PictureBox覆盖了,那么如何调出来呢?
在解决这个问题的时候找到了光彩师姐的博客,写的很详细,我们要站在巨人的肩膀上前行嘛,分享给大家^_^
3、文章中说到的hWnd是什么呢?
在Windows操作系统中,每一个对象都有一个唯一的编号,这个编号就叫句柄,它是WINDOWS用来记录,控制所分配资源的一个控制点。它的英文是HANDLE(把手,把柄),这就好像每个人都有一个名字一样,用以被别人称呼或识别。句柄是给编程的人用的,以便程序员在程序中使用、称呼这个对象。比如生成一个窗口,会返回一个窗口句柄。
以上的数字便是他们的临时句柄。
在小伙伴们的帮助下机房收费系统细化了很多问题,太多了就不在在一一陈述了,机房收费系统逐个窗体的梳理环节就到此为止咯,下一篇机房收费系统总结篇走起^_^