在代码的第四行(忽略空格和注释),然后我计算两个日期之间的月份差。这行得通,但看起来有些古怪。有没有更好的办法?
int handleAllowance(LocalDate today) {
int allowance = membership.allowance();
if (allowance == 0) return 0;
// if update was last month (or earlier)
int months = today.monthOfYear().getMaximumValue() - today.monthOfYear().getMinimumValue(); // yeah, 12, but just to be 100% correct :-)
int curMonth = (today.getYear() * months) + today. getMonthOfYear();
int updMonth = (lastAllowanceUpdate.getYear() * months) + lastAllowanceUpdate.getMonthOfYear();
if (curMonth > updMonth) {
// ...and if today is on or past update day
int updateDay = Math.min(allowanceDay, today.dayOfMonth().getMaximumValue());
if (today.getDayOfMonth() >= updateDay) {
// number of months to give allowance (in the rare case this process fails to run for 2 months or more)
int allowanceMonths = curMonth - updMonth;
// give credits
final int totalAllowance = allowance * allowanceMonths;
giveCredits(totalAllowance);
// update day
lastAllowanceUpdate = lastAllowanceUpdate.plusMonths(allowanceMonths);
// return the allowance given
return totalAllowance;
}
}
return 0;
}
Months.monthsBetween(
start.withDayOfMonth(1),
end.withDayOfMonth(1)).getMonths()
问题内容: 我正在构建一个使用时间的应用程序。我决定用乔达时间。我正在尝试将joda时间添加到我的应用中。我没有将文件添加到库的经验。我遵循了这些步骤(请参阅底部),所以我想。我的项目没有显示任何错误,但是当我运行一个简单的测试时:我被强制关闭,并出现以下错误: 这些是我遵循的步骤: 在eclipse中创建您的android项目。 下载Joda时间 在Eclipse中,在Package Explo
问题内容: 我想计算事件的 结束日期 (和时间)。我知道 开始日期 和 持续时间 (以分钟为单位)。但: 我不得不跳过假期-非经常性情况 我必须跳过周末-经常性的情况 我 不必 计算工作时间(例如:从8:00 am到5:00 pm)-经常出现的情况,但粒度要细一些 是否有使用Joda时间库实现这些情况的简单方法? 问题答案: Jodatime将为您提供帮助-我要说很多-但您需要自己编写逻辑,一个循
问题内容: 他们幸福地结婚了吗? 我正在使用最新版本的hibernate(4)和1.3版的joda-time hibernate支持,我也相信这是当前的最新版本。 使用注释时,一切似乎都正常(按预期方式创建了日期列): 一起使用这些版本是否存在任何已知问题? Update Well证明已创建列,但无法填充任何数据: 处理程序处理失败; 嵌套异常是java.lang.AbstractMethodEr
问题内容: 无论如何,是否可以验证给定日期(yyyy-MM- dd)是否为有效日期?它也应该处理leap年。例如(2015-02-29)应该无效。我将日期作为字符串检索,并将其放入joda DateTime对象。 问题答案: 我认为,这应该对您有用(如果您想保持简单)。 你必须做一个。
我在计算两次约会的时差。。 上面的方法很有效,但它可以提供几天、几小时和几秒钟的时间。我希望它也能告诉我月份。但问题是每个月都有不同的天数,所以我如何才能找到月数呢?
问题内容: 我正在使用Joda Time 2.1库。 我已经编写了一种比较给定日期是否在日期范围之间的方法。我希望它包含开始日期和结束日期。我已经习惯了,因为我不想考虑时间部分仅是日期部分。 下面是它的代码。 上面方法的输出是: 我的问题是错误的,即使日期和具有相同的值。 我想要那个,但这里只考虑。 我希望它具有包容性。 这是否意味着该方法专门找到一个匹配项? 我在Joda Time中浏览了Jav