停车费计算

如何解决停车费计算

因此,我正在努力计算停车系统。我一直在寻找与我的比率相似但未成功的人。

因此,计算应该在前30分钟免费,之后30分钟免费10,然后每半小时5免费。

例如:0、10、15、20、25等

我的想法是从总分钟数中减去60分钟,如果结果为0,则加10;如果结果为> 0,则在前60分钟后的每半小时加5。

问题在于,当总分钟数为60

我觉得应该在前两个半小时内添加一个额外的变量?

任何帮助将不胜感激。

下面是我的代码小贴士:


int rate = 5;

TimeSpan difference = timeOut - timeIn;

                double minutes = Math.Round(difference.TotalMinutes,0);

                    double remainder = minutes % 30;

                    if (remainder != 0)
                    {
                        minutes = (minutes + (30 - remainder)) - 60;
                    }

                if (minutes < 30)
                {
                    minutes = 0;
                    TotalAmount = 0;
                    cashAmountText.Text = "0";
                    vatAmountText.Text = "0";
                    AmountDueText.Text = "0";
                    PayButton.IsEnabled = true;
                    FreeParking = "****Free Parking****";
                }
                else
                {
                    Amount_Due = ((minutes / 30) * rate) + 10;
                    TotalAmount = /*(Amount_Due  * 0.15) + */Amount_Due;
                    VatAmount = TotalAmount * 0.15;
                    Vat =/* TotalAmount - */VatAmount;
                    cashAmountText.Text = Amount_Due.ToString();
                    vatAmountText.Text = Math.Round(Vat,0).ToString();
                    AmountDueText.Text = Math.Round(TotalAmount,0).ToString();
                    PayButton.IsEnabled = true;
                    FreeParking = "****Thank You****";
                }

解决方法

这听起来像是一种表达“每半小时$ 5,少于半小时则免费”的复杂方式。我们可以保持简单,使用公式halfHours * 5来确定应付金额,如果halfHours太小,只需将其清零。

int rate = 5;
double halfHours = Math.Ceiling((timeOut - timeIn).totalMinutes / 30);

if (halfHours == 1) halfHours = 0;

Amount_Due = halfHours * rate;
TotalAmount = Amount_Due;
VatAmount = TotalAmount * 0.15;
cashAmountText.Text = Amount_Due.ToString();
vatAmountText.Text = Math.Round(VatAmount,0).ToString();
AmountDueText.Text = Math.Round(TotalAmount,0).ToString();
PayButton.IsEnabled = Amount_Due > 0;
FreeParking = Amount_Due > 0 ? "****Thank You****" : "****Free Parking****";

我保留了您的进一步计算,但我确实想知道为什么AmountDueText应该包含TotalAmount,为什么TotalAmount总是等于Amount_DueTotalAmount是否不应该包含已加税?

,

一种方法是设置一个temp变量以跟踪剩余的分钟数,然后在每隔30分钟添加一次结果时从中减去:

var timeIn = DateTime.Now;

// Hard code this for testing (3 hours and 30 minutes
var timeOut = timeIn.AddHours(3).AddMinutes(30);

TimeSpan difference = timeOut - timeIn;

double minutes = Math.Round(difference.TotalMinutes,0);
double minutesRemaining = minutes;
int result = 0; // Charge for the first 30 minutes

if (minutesRemaining > 30)
{
    result += 10; // Charge for the second 30 minutes
    minutesRemaining -= 60;
}

while (minutesRemaining > 0)
{
    result += 5;
    minutesRemaining -= 30;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?