我正在尝试创建一个返回布尔值的方法,该布尔值将当前月份、日期和年份与提供的保存的月份、日期和年份进行比较。这是我的代码,我不确定我做错了什么,但我提供的所有日期都是真实的。我想我说错了什么,但我不确定。
public boolean isExpired(){
boolean expired = true;
LocalDateTime today = LocalDateTime.now();
int month = today.getMonthValue();
int year = today.getYear();
int day = today.getDayOfMonth();
if((this.expYear <= year) && (this.expMonth <= month) && (this.expDay <= day))
{
expired = false;
}
return expired;
}
发布于 2018-02-23 08:46:52
使用LocalDate.of(...)
从您的到期日期创建一个LocalDate
对象expDate
,您可以在类的构造函数中执行此操作。
private LocalDate expDate;
MyClass(int expYear, int expMonth, int expDay) {
expDate = LocalDate.of(expYear, expMonth, expDay);
不需要单独记住字段expYear、expMonth和expDay,因为您始终可以从expDate
中检索它们。
您的isExpired方法变为:
return !LocalDate.now().isBefore(expDate);
发布于 2018-02-23 09:23:50
像这样更改isExpired()方法的逻辑
public boolean isExpired() {
LocalDate expiredDate = LocalDate.of(expYear, expMonth, expDay);
return LocalDate.now().isBefore(expiredDate);
}
发布于 2018-02-23 09:06:14
public boolean isExpired(){
boolean expired = false;
LocalDateTime today = LocalDateTime.now();
int month = today.getMonthValue();
int year = today.getYear();
int day = today.getDayOfMonth();
if((this.expYear < year) || (this.expYear == year && this.expMonth < month) || (this.expYear == year && this.expMonth == month && this.expDay <= day))
{
expired = true;
}
return expired;
}
这里!我已经为你重写了你的代码,现在它会工作的很好。
解释:
<代码>F210
https://stackoverflow.com/questions/48939314
复制相似问题