ASP.NET.MVC 找零算法 && 计算时间差

开发工具与关键技术:VS2015  MVC
作者:超级小贱贱
撰写时间:2019年7月07日

在这里插入图片描述
如图所示,一个客户累计消费330,前面已经收了200的定金,然后还需支付130,现在我需要做的呢就是当我在宾客支付输入数字的时候,右边的找零就会自动计算并显示出来,下面是方法。
在视图层里面,首先获取到“宾客支付”对应的input框id,在用一个改变事件,$("#MainPay").change(function(),改变事件是这里的关键,input框一旦发生改变,就会自动计算并显示出来,然后分别获取到“余额”和“宾客支付”两个input框里面的数据
在这里插入图片描述
再让它们两个相加var Pay=parseInt(Balance)+parseInt(MainPay);这里有个小细节,因为两个的数据类型不全是int + int,所以最好都转化一下,计算出来的才是正常值,否则就变成了字符串,一般正常的计算应该是1 + 1 = 2,但字符串相加则是 1 + 1 = 11,最后在就声明好的计算值返回到“找零”模态框里面$("#MainChange").val(Pay);,然后计算找零就完成了。
接下来的这个计算时间差,写之前一定要认真看仔细了,因为分割的数组太多,一不小心打错就会造成庞大的时间差
在这里插入图片描述
首先获取到“开台时间”对应的input框里面的时间(这个开台时间是在你一开台就记录下来的时间,而买单时间就是你一点击模态框就立马获取的当前时间并回填回去)var MainRentTime=data.RentTime;//获取到文本框里面的开台时间 【2018-01-01 00:00:00】此时只有一个数组,然后我要将他们分割成两个数组var date1=MainRentTime.split(" ");//将完整的时间分割成 ["2018-01-01"],["00:00:00"]接着将两个数组在细细分割,分成6个数组,var date2=date1[0].split("-");//分割成["2019", "06", "13"]三个数组,注意("-")看上一部分第一个数组就知道了

var date3=date1[1].split(":");//分割成["00", "00", "00"]三个数组

然后开台时间就分割完了,接着是分割右边的买单时间。
在这里插入图片描述
全部分割完之后,开始计算。首先分析一下,按照正常逻辑来说,是后者减去前者才能得出时间差,然后我这边的话因为是结账,所以没必要计算出年的差,继续。首先将年转化为日,接着将 月 也转换成 日,最后剩下的就可以相减了。
在这里插入图片描述
然后在获取到“时长”对应的input框id值,将最终结果显示到里面

$("#MainDate").val(DateLong);

,然后有个小扩展,

document.getElementById("MainDate").readOnly="readonly";//设定input只能看不能操作

最后,展示一下最终结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值