gpt4 book ai didi

java - 日期逻辑的一个简单案例。计算间隔

转载 作者:行者123 更新时间:2023-12-01 09:59:26 24 4
gpt4 key购买 nike

我在寻找计算准确值的正确方法时遇到问题。问题就在这里。我有一个可以按周、按天、按小时定价的资源。

假设每小时花费 5 英镑,每天 20 英镑,每周 150 英镑。

我想要做的是计算预订资源的成本,因此如果有人预订了 1 周、3 天和 2 小时,他们最终应该只支付 150 + 60 + 10 = 220

我正在使用 JodaTime 作为引用。这是我到目前为止所拥有的:

hour_price = resource.getPricing().getHourly() * ((mDuration.toStandardSeconds().getSeconds() % 86400) % 24);
day_price = resource.getPricing().getDaily() * (mDuration.toStandardDays().getDays() % 7);
week_price = resource.getPricing().getWeekly() * (Math.floor(mDuration.toStandardDays().getDays() / 7));
double cost = week_price + day_price + hour_price;

我认为周逻辑和日逻辑是合理的。现在我只需要剩余时间逻辑。有什么指点吗?

最佳答案

您应该从最大间隔开始,从持续时间中取出它,然后选择较小的间隔,取出剩余的秒数并将其用于最小间隔:

week_price = resource.getPricing().getWeekly() * (mDuration.toStandardDays().getDays() / 7);
day_price = resource.getPricing().getDaily() * (mDuration.toStandardDays().getDays() % 7);
hour_price = resource.getPricing().getHourly() * ((mDuration.toStandardSeconds().getSeconds() % 86400) / 3600);

因此,在最后一步中,您记下周和天后剩余的时间(以秒为单位)(除以一天的秒数 - 24 小时后的余数),然后除以每小时的秒数获取现在有多少小时。如果您还剩几秒钟,则在 hour_price 上再添加一小时,因为它开始了新的一小时。

关于java - 日期逻辑的一个简单案例。计算间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36931989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com