【问题标题】:Checking the time status of a project based on a predetermined date and duration in Java根据 Java 中的预定日期和持续时间检查项目的时间状态
【发布时间】:2013-02-11 04:01:04
【问题描述】:

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

我从数据库中检索项目的开始日期 (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();

【问题讨论】:

    标签: java date compare


    【解决方案1】:

    所以有些类似...

    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!!
        }
    
    }
    

    【讨论】:

    • 非常感谢,它就像一个魅力。我对 Calendar API 和类似的东西不是很熟悉,所以我很欣赏你的专业知识。
    猜你喜欢
    • 1970-01-01
    • 2021-01-02
    • 1970-01-01
    • 1970-01-01
    • 2014-10-18
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多