Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于Java中预定的日期和持续时间检查项目的时间状态_Java_Date_Compare - Fatal编程技术网

基于Java中预定的日期和持续时间检查项目的时间状态

基于Java中预定的日期和持续时间检查项目的时间状态,java,date,compare,Java,Date,Compare,我目前正在做一个项目,其中包括检查一个项目是否提前或超过了分配的时间 我从数据库中检索项目的开始日期(yyyy-MM-dd)和项目应持续的月数。我还使用Calendar.getInstance()检索今天的日期 我需要的是检查今天的日期是否在计划时间内 任何帮助都将不胜感激 在不让你厌烦所有其他无关代码的情况下,下面是我正在研究的部分 DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = Calend

我目前正在做一个项目,其中包括检查一个项目是否提前或超过了分配的时间

我从数据库中检索项目的开始日期(yyyy-MM-dd)和项目应持续的月数。我还使用
Calendar.getInstance()
检索今天的日期

我需要的是检查今天的日期是否在计划时间内

任何帮助都将不胜感激

在不让你厌烦所有其他无关代码的情况下,下面是我正在研究的部分

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();

String today =  dateFormat.format(cal.getTime());
String startdate = project.getStart();
String duration = project.getDur();

因此,一些类似于

Calendar cal = Calendar.getInstance();
cal.setTime(startDate);
cal.add(Calendar.MONTH, duration);

Date endDate = cal.getTime();
Date today = new Date();

// You also want to check for today.equals(endDate)
if (today.before(endDate)) {
    // All is good...
} else {
    // PANIC NOW!!
}
注意。这也考虑到了时间

如果时间不是你计算的一个因素,我倾向于把它移到一天的开始或结束,这取决于你的要求是什么

public static Date toEndOfDay(Date date) {

    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    // Move the time to end of the day...
    cal.set(Calendar.HOUR_OF_DAY, 23);
    cal.set(Calendar.MINUTE, 59);
    cal.set(Calendar.MILLISECOND, 999);

    return cal.getTime();

}

public static void main(String[] args) {

    Calendar cal = Calendar.getInstance();
    cal.setTime(startDate);
    cal.add(Calendar.MONTH, duration);

    Date endDate = toEndOfDay(cal.getTime());
    Date today = toEndOfDay(new Date());

    // You also want to check for today.equals(endDate)
    if (today.before(endDate)) {
        // All is good...
    } else {
        // PANIC NOW!!
    }

}

非常感谢,它很有魅力。我不太熟悉日历API和类似的东西,所以我非常感谢您的专业知识。