zoukankan      html  css  js  c++  java
  • 【机房收费系统 2】:上机时间和消费金额

    我想把机房收费系统中,关于上机时间和消费金额的东西写下来。当时,这两部分可真是难为我了。

    上机时间

    我其实刚开始都算不出来上机时间,师姐还笑话我笨。后来,几经周折,也试了一些函数(别人都是一下子就找到那个函数了,我是试了一些,才弄出一个我使着顺手的),最后还是用了 DateDiff 函数。有关于这个函数的使用,我不多说,因为度娘会比我更清楚。

    刚开始,师姐说只需要一行代码就算出来了。其实,师姐也没有说错。用这个函数,确实只需要一行代码。可是,前提条件是:用户当天上机,当天下机。也就是说:上机日期和下机日期必须是同一天。不然,用这个函数,一行代码,是绝对算不出的(有算出的,请发慈悲告诉我,我好好学习)。


    我也和一些人交流过,也查了博客。大都说因为是学校机房用,所以,是不可能出现上机日期超过一天的(也就是说,不可能有上通宵的)。也因此,真的只需要那么一行代码CostTime = DateDiff("n", StartTime, EndTime),就可以搞定。

    可是,就像师姐说的那样:你太较真了!我真的不明白,为什么要先用学校机房用,所以上机日期不可能超过一天去限制我们对于时间的算法。我认为,他能不能上通宵,是他的事儿,时间该怎么算就还得怎么算。所以,对于时间的算法,我计算了三种(粗略写一下)。

    一、CostTime = DateDiff("n", StartTime, EndTime)      ’ 当天上机,当天下机

    二、CostTime =TimeValue(24 * 60 - StartTime + EndTime)    '上机间隔一天,比如说今天20:00上机,明天02:00下机。

    三、CostTime =TimeValue(24 * 60 - StartTime + EndTime) + (CostDate - 1) * 24 * 60   ' 上机日期超过一天


    因为,有一些格式转换的问题,所以看起来可能不搭。但我就是说这么个意思。不是还有个强制下机嘛,所以,个人觉得时间就是得算齐全了。万一,哪天系统不在学校用了呢,或者对外开放可以上通宵呢。(其实,后来想想也真是不大可能。但再给我一次机会,我会说说五个字:我要这样算!)全当我给鸡窝多加了几根草吧!

    消费金额

    消费金额这一块儿也是把我给卡住了,我最初做出来的系统,是不管你什么用户,不管你上机多久,我都按每分钟给你算,根本没有考虑到准备时间、至少上机时间、递增单位时间这些东西。后来,也给想明白了(至少,现在的我,还没有想出更对的算法了)。

    一、上机时间在准备时间内,所有类型用户均不收费,也就是消费金额为零。

    二、超过了准备时间,但在至少上机时间内。那么上机时间就按至少上机时间给不同类型的用户计算消费金额。

    消费金额=至少上机时间 * 单位时间消费

    三、超过了至少上机时间。

    X=(消费时间-最少上机时间)/ 递增单位时间       ' X保留一位小数

    IF  int( x ) <> x then int(x)=int(x+1) , else x=x  (不要求格式滴哈,就简单说明一下)

    消费金额=(至少上机时间+递增单位时间 * X )* 单位时间消费(分用户类型)


    脑袋瓜儿也不好使,都想了好久,才想到现在这个程度。要是发现有什么错的,真诚的希望大家能帮我指出来。






    请大家多多指教,谢谢!




  • 相关阅读:
    cyq.data 常见使用方法
    JS生成随机数进行循环匹配数组
    CSS3常用的循环动画
    JSSDK调用微信原生的功能上传图片保存到自己的服务器中
    C#图片压缩
    nodejs使用vue从搭建项目到发布部署
    JS在一个数组中查找某个用户输入的值,返回对应值所在索引值
    转载文章记录篇
    随笔诗词-1
    mobilebone与weiui_example.css 使用问题
  • 原文地址:https://www.cnblogs.com/hhx626/p/6010480.html
Copyright © 2011-2022 走看看