-4

我需要找到用户给出的两个日期的星期三。示例:输入是:从日期:07-Feb-2013 到日期:13-feb-2013 从日期和到日期之间的间隔始终为 7 天。预期产出:2013 年 2 月 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 之间存在的周三。我该怎么做?

4

2 回答 2

4

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

于 2013-02-11T13:14:32.777 回答
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

你可以测试它,看看它是否能给你你想要的

于 2013-02-11T15:18:36.190 回答