首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果每天都指定停车费,我如何计算几天的停车费?

如果每天都指定停车费,我如何计算几天的停车费?
EN

Stack Overflow用户
提问于 2013-04-02 15:26:31
回答 2查看 1.8K关注 0票数 6

我必须计算持卡人的总账单金额,以卡为基础进入停车场。我的费率结构如下所示。停车场中的每个区域都会有一个这些价格的优先列表。

代码语言:javascript
复制
public partial class HourlyPrice
{
    public int Id { get; set; }
    public int DayId { get; set; }
    public DateTime StartTime { get; set; }
    public DateTime EndTime { get; set; }
    public int MinHour { get; set; }
    public int MaxHour { get; set; }
    public decimal Price { get; set; }
}

例如,DayId允许“从13点开始,周日免费”。MinNour和'MaxHour‘允许0到2小时是免费的,其中5到6小时收费11.00兰特。StartTimeEndTime允许“18h00后收费7.00兰特,统一费率”。

我关心的是没有指定多天价格的地方。当一辆车在某一天以一种价格结构进入,而在另一天以另一种价格结构退出。在我看来,我必须按顺序访问车辆停放的每一个小时,并累积应付的金额。这似乎是一种非常昂贵的做事方式。

任何关于这种投入的建议都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2013-04-02 15:50:02

我认为这个库应该能解决你所有的问题:

http://www.codeproject.com/Articles/168662/Time-Period-Library-for-NET

票数 3
EN

Stack Overflow用户

发布于 2013-04-02 16:44:43

您可以将每个特定日期的定价策略存储在间隔树中。这棵树应该存储一天中的所有时间。除了小时限制之外,还应该保留几个信息:

  • 布尔型单位:定价单位是分级的吗?(例如,在整个时间间隔内为R7.00 )
  • 一个整数价格:该时间段内一小时的成本。如果flat设置为true,则这是整个期间的成本。

您可以在输入中获得停车记录。我假设它们是汽车的到达和离开时间的时间戳。前两个小时是免费的,所以你“增加”了两个小时的到达时间。根据得到的时间戳,您可以构建一个三元组序列(日期、开始时间、结束时间)。它可能是空的(如果车主停放的时间少于两个小时),这种情况是微不足道的:成本为R0.00

现在,处理序列的算法应该如下所示:

代码语言:javascript
复制
cost <- 0
while (NOT is_empty(sequence)) {
    dayTriplet <- pop(sequence)
    down <- dayTriplet.StartTime
    up <- dayTriplet.EndTime
    pricingTree <- getPriceTree(dayTriplet.dayId)
    while (down < up) {
        node <- findNode(pricingTree, down)
        nbHours <- min(up, node.up) - down
        if (node.flat) {
            cost <- cost + node.price
        } else {
            cost <- cost + nbHours*node.price
        }
        down <- down + nbHours
    }
}

这个算法有点错误,但我觉得它背后的想法值得一试。例如,如果一辆车一天停在18点以后,直到第二天4点,这个算法将解析(d,18,24)和(d+1,0,4),因此车主应该支付该期间固定费率的两倍,而不是只收一次。一个类似携带的系统应该可以解决这个问题。我只是没有集成它来留下一个相对清晰的算法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15758461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档