我有一个产品名toy
出售时有一系列折扣
客户购买toy
一个期限,当达到expire_time
时,他会续约
所以toy
实例有pay_time
和expire_time
字段:
class Toy(models.Model):
pay_time = DateTimeField()
expire_time = DateTimeField()
当客户有toy
实例时,pay_time
是2018.01.01
,expire_time
是2018.05.01
。现在,当时间到达2018.05.01
时,客户将更新产品
续订策略折扣列表如下:
renew_discounts_list: [
{
discount: 0.20,
min_mon: 1,
max_mon:3
},
{
discount: 0.15,
min_mon: 4,
max_mon:6
},
....
]
如果客户想续费17
个月,计算起来非常复杂
我想查看折扣结果,这是我需要的输出:
[
{
'months': 1,
'disconts': 0.15 #(4~6: 0.15)
},
{
'months': 3,
'disconts': 0.10 #(7~9: 0.10)
},
....
]
结果总months
为17
我试着用judge来解决这个问题,但它不是一个好的解决方案
您可以使用递归进行计算:
我假设dict的
toy
实例:我列出了
discounts
策略列表:使用递归方法:
我已经测试过了:
输出:
相关问题 更多 >
编程相关推荐