机房收费系统之细化篇(跨日期下机,MDI窗体的运用,MDI主窗体与子窗体的交互)

      最近在细化机房收费系统时,发现在下机窗体出现了很多消费时间为负值的情况,有时还会弹出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覆盖了,那么如何调出来呢?

在解决这个问题的时候找到了光彩师姐的博客,写的很详细,我们要站在巨人的肩膀上前行嘛,分享给大家^_^

https://blog.csdn.net/sunny5319/article/details/52232304

3、文章中说到的hWnd是什么呢?

    在Windows操作系统中,每一个对象都有一个唯一的编号,这个编号就叫句柄,它是WINDOWS用来记录,控制所分配资源的一个控制点。它的英文是HANDLE(把手,把柄),这就好像每个人都有一个名字一样,用以被别人称呼或识别。句柄是给编程的人用的,以便程序员在程序中使用、称呼这个对象。比如生成一个窗口,会返回一个窗口句柄。

 

     以上的数字便是他们的临时句柄。

    在小伙伴们的帮助下机房收费系统细化了很多问题,太多了就不在在一一陈述了,机房收费系统逐个窗体的梳理环节就到此为止咯,下一篇机房收费系统总结篇走起^_^

猜你喜欢

转载自blog.csdn.net/Elsa15/article/details/83626676