最近遇到一个需求,需要在不同的时间段内显示不同的内容,刚开始我也是一头雾水,但后来发现了比较一个巧妙的方法。
前言
其实这个应用的场景有很多:比如双十一的时候,你在前两个小时看到的价格和最后两个小时看到的价格优惠力度就会不一样。
下面的内容可以供大家参考
一、怎么样的逻辑来实现?
这里举个例子:总时长设置为一个小时,每六分钟的商品的价格就会刷新一次。
我第一个想到的就是获取当前时间,但这个一定要在后端写!!!为什么不能在前端写,如果说我是用户,我用一些特殊的方法将本设备的时间改为便宜的时段,这样可能会造成无法弥补的伤害!!!!
二、代码实现逻辑
1.获取当前时间,并设置相关的规则
代码如下: 这里用的编程语言是C# //获取当前的时间
var currentMin = DateTime.Now.Minute;
//这里作为例子将一小时,分为了十个时间段,每六分钟是一个价格,数字代表不同的价格,一共有四种价格
int[] arr = new int[] { 1, 1, 4, 1, 2, 2, 2, 4, 3, 3 };
//定义一个当前价格
decimal currentMoney;
//定义四个价格分别为多少(Money1代表第一种价格也就是数字为1的时候,以此类推…………)
decimal Money1 = 1.22M, Money2 = 1.33M, Money3 = 8.88M, Money4 = 9.99M;
2.用获取到的currentMinute/6,判断的对应的数字是几,然后让其对应不同的价格。
代码如下:
//用当前分钟的数字/6
var index=currentMin/6
switch (arr[index])
{
case 1:
currentMoney = Money1;
break;
case 2:
currentMoney = Money2;
break;
case 3:
currentMoney = Money3;
break;
case 4:
currentMoney = Money4;
break;
}
currentMoney价格就是当前时间段的价格
总结
大家在遇到这种不同时间段价格不一样的价格,需求肯定和我举得例子不一样。但如果你理解我举得这个例子,再结合你自己的项目,相信你一定能解决问题。 由于代码仅作为参考,所以一些返回值什么的我都没写,包括如何优化内存也没处理,所以大家在应用到自己的项目注意一下这些问题。如果有不懂的地方或者我有什么错的地方,欢迎大家评论指教;如果大家有什么更好的办法,也可以把链接分享给我。