首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >LocalDateTime和比较

LocalDateTime和比较
EN

Stack Overflow用户
提问于 2018-02-23 08:20:29
回答 3查看 4.2K关注 0票数 3

我正在尝试创建一个返回布尔值的方法,该布尔值将当前月份、日期和年份与提供的保存的月份、日期和年份进行比较。这是我的代码,我不确定我做错了什么,但我提供的所有日期都是真实的。我想我说错了什么,但我不确定。

代码语言:javascript
代码运行次数:0
运行
复制
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;
}
EN

回答 3

Stack Overflow用户

发布于 2018-02-23 08:46:52

使用LocalDate.of(...)从您的到期日期创建一个LocalDate对象expDate,您可以在类的构造函数中执行此操作。

代码语言:javascript
代码运行次数:0
运行
复制
private LocalDate expDate;

MyClass(int expYear, int expMonth, int expDay) {
    expDate = LocalDate.of(expYear, expMonth, expDay);

不需要单独记住字段expYear、expMonth和expDay,因为您始终可以从expDate中检索它们。

您的isExpired方法变为:

代码语言:javascript
代码运行次数:0
运行
复制
return !LocalDate.now().isBefore(expDate);
票数 2
EN

Stack Overflow用户

发布于 2018-02-23 09:23:50

像这样更改isExpired()方法的逻辑

代码语言:javascript
代码运行次数:0
运行
复制
public boolean isExpired() {        
     LocalDate expiredDate = LocalDate.of(expYear, expMonth, expDay);       
     return LocalDate.now().isBefore(expiredDate);  
}
票数 1
EN

Stack Overflow用户

发布于 2018-02-23 09:06:14

代码语言:javascript
代码运行次数:0
运行
复制
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

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

https://stackoverflow.com/questions/48939314

复制
相关文章

相似问题

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