找到用户给出的两个日期之间的星期三

时间:2013-02-11 13:10:12

标签: java

我需要在周三找到用户提供的两个日期。 例: 输入是: 从日期:2013年2月7日 迄今为止:2013年3月13日 始发日期和结束日期之间的差距始终为7天。 预期产出:2013年12月12日

public String getAutoDayExpiryDateAndToDate(String instrmentId,String deliveryAutoFromDate)
    throws SystemException, FunctionalException,ParseException
    {

        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date(deliveryAutoFromDate));
        Date fromDate=calendar.getTime();
        SimpleDateFormat sf1 = new SimpleDateFormat("dd-MMM-yyyy");
        String formatedDate = sf1.format(fromDate);
        calendar.add(Calendar.WEEK_OF_MONTH, 1);
        calendar.add(Calendar.DAY_OF_WEEK,-1);
        Date time = calendar.getTime();
        SimpleDateFormat sf = new SimpleDateFormat("dd-MMM-yyyy");
        String formatedDate1 = sf.format(time);
    }

之后我需要找到在formatedDate和formatedDate1之间存在的星期三。我可以这样做吗?

2 个答案:

答案 0 :(得分:4)

使用Calendar课程。将其设置为第一个日期,然后通过调用calendar.get(Calendar.DAY_OF_WEEK)检查当前星期几是否为星期三。在循环中执行此检查,在每次迭代期间向当前日期添加一天。这绝不会超过七个步骤,所以你不需要做任何比这更好的事情。

答案 1 :(得分:0)

这应该找到在给定日期之后(或等于)的第一个星期三

    GregorianCalendar c = new GregorianCalendar(2013, 1, 7);
    if (c.get(Calendar.DAY_OF_WEEK) <= Calendar.WEDNESDAY) {
        c.add(Calendar.DAY_OF_YEAR, Calendar.WEDNESDAY - c.get(Calendar.DAY_OF_WEEK));
    } else {
        c.add(Calendar.DAY_OF_YEAR, 11 - c.get(Calendar.DAY_OF_WEEK));          
    }
    System.out.println(c.getTime());

打印

Wed Feb 13 00:00:00 EET 2013

您可以对其进行测试,看看它是否能满足您的需求