Java - 一周内的 boolean 值

标签 java

我正在构建一个应用程序,需要获取本月截止日期(用于填写表单)的用户列表,然后将这些用户过滤为截止日期在一周内的用户。

所以

if(isWithinAWeek(dueData)){
 //alarm - 1
}
else{
 //alarm - 0
}

--- 我需要帮助确保此 boolean isWithinAWeek 方法正确

public static Boolean isWithinAWeek(Date date1){
    Date c1 = setTimeInDays(date1, 7);      
    if(c1.after(date1)){
        return true;
    }
    return false;
}


public static Date setTimeInDays(Date startingTime, Integer days){
    Calendar c = Calendar.getInstance(); 
    c.setTime(startingTime); 
    c.add(Calendar.DATE, days);//a day in the future or past
    return c.getTime();
}

最佳答案

您所写的条件将始终为真。 如果我简化一下就更容易看出:

public static boolean isWithinAWeek(Date date) {
    return setTimeInDays(date, 7).after(date);
}

这与你的相同,只是更短。 正如您所看到的,它实际上是在说“如果日期 + 7 天在日期之后,则返回 true”。 这始终是正确的。

您想要检查现在 + 7 天是否在日期之后, 不是日期 + 7 天:

public static boolean isWithinAWeek(Date date) {
    return setTimeInDays(new Date(), 7).after(date);
}

我还将返回类型从 Boolean 更改为 boolean, 因为该值永远不会为空。 我建议将 setTimeInDays 重命名为 plusDays, 因为这将类似于最新版本的 Java 中的现代日期 API (这样当你学习它时,它就会看起来很熟悉)。

关于Java - 一周内的 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46627343/

相关文章:

java - 通过selenium在Internet Explorer中下载Excel文件

java - 使用 while 循环迭代 Firebase 数据库

java - 运行 Servlet 时出现 RuntimeException : Tomcat restarting on its own

java - 是否可以在处理中从java类内部绘制一个矩形?

java - 打包多媒体文件(视频或音频文件)

java - java中的重复正则表达式模式

java - 无法检索 Android 自定义类 arraylist 数据

Linux 上的 Java : Listening to broadcast messages on a bound local address

java - List<WebElement> 类型的方法 sendKeys(String) 未定义

java - 将 Spring MVC 安全定向更改为登录