机房收费系统-下机操作

下机操作是机房这的一个难点,充分的考察了我们对数据库的运用!
对于下机操作,缕清逻辑后,就会变得很容易!

思路

简单的画了一下流程图还有下机时需要用到的表以及它的相关操作!
流程
表的操作
缕清了这些接下来就是代码实现了!

代码

1、查询基本参数

是所谓的基本参数就是在basicdate_info中的值,例如一小时需要花费多少钱等等!

txtSQL4 = "select* from basicdata_info"
Set mrc4 = executeSQL(txtSQL4, msgtext4)
t1 = Trim(mrc4.Fields(0))
t2 = Trim(mrc4.Fields(1))
t3 = Trim(mrc4.Fields(3))
t4 = Trim(mrc4.Fields(4))

将查询到的这些值赋值给t1-4

2、计算所用的时间

计算所用的时间用到了一个函数“DateDiff”
datediff函数的用法如下:
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
DateDiff 函数语法中有下列命名参数
interval 必要。字符串表达式,表示用来计算date1 和 date2 的时间差的时间间隔
Date1□date2 必要;Variant (Date)。计算中要用到的两个日期。
Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。
firstweekofyear 可选。指定一年的第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。
interval 参数的设定值如下:
设置 描述
yyyy 年
q 季
m 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 时
n 分钟
s 秒
firstdayofweek 参数的设定值如下:
常数 值 描述
vbUseSystem 0 使用 NLS API 设置。
vbSunday 1 星期日(缺省值)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
常数 值 描述
vbUseSystem 0 用 NLS API 设置。
vbFirstJan1 1 从包含 1 月 1 日的星期开始(缺省值)。
vbFirstFourDays 2 从第一个其大半个星期在新的一年的一周开始。
vbFirstFullWeek 3 从第一个无跨年度的星期开始。
程序中用到的代码如下:

                '计算分钟数
                date1 = Trim(mrc2.Fields(6))
                time1 = Trim(mrc2.Fields(7))
                date2 = Trim(mrc2.Fields(8))
                time2 = Trim(mrc2.Fields(9))
                costdate = DateDiff("n", date1, date2)
                costtime = DateDiff("n", time1, time2)
                alltime = costdate + costtime
                mrc2.Fields(10) = alltime

3、计算所用金钱

计算所花费的金钱时,要注意,分为固定用户和临时用户两种,两种所用的系数不一样!

                '判断用户类型并计算上机的时间和金钱
                If Trim(mrc.Fields(14)) = "固定用户" Then
                    If mrc2!consumetime < t3 Then    '上机不足设定最小分钟数,不收费!
                        mrc2!consume = "0.0"
                    ElseIf mrc2!consumetime Mod 60 = 0 Then
                        mrc2!consume = Round(Trim(mrc2!consumetime) \ 60) * t1   
                    Else
                        mrc2!consume = (Round(Trim(mrc2!consumetime) \ 60) + 1) * t1
                    End If
                Else    '如果用户类型为临时用户
                    If mrc2!consumetime < t3 Then
                        mrc2!consume = "0.0"
                    ElseIf mrc2!consumetime Mod 60 = 0 Then
                        mrc2!consume = Round(Trim(mrc2!consumetime) \ 60) * t2
                    Else
                        mrc2!consume = (Round(Trim(mrc2!consumetime) \ 60) + 1) * t2
                    End If
                End If

4、其他

其他的就是一些简单的常规操作啦!

结束语

下机这个部分还有选中用户下机和所有学生下机,下次在来分享!、
感谢你的阅读!

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LLLDa_&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值