0

所以我花了相当多的谷歌搜索和浏览东西,但我就是无法让它工作。即使 request.getEnd() 比当前 startCal.getTime 晚了几天,它也不会认为该声明是真的。有任何想法吗?

while(startCal.after(request.getEnd()))
            {
                /* Calculate new beginning */

                startCal.add(Calendar.DATE, 1);
                newBegin = startCal.getTime();
                System.out.println(newBegin);
                /* Calculate new ending */

                endCal.add(Calendar.DATE, 1);
                newEnd = endCal.getTime();

                /* Setting new dates and series ID */
                localRequest.setBegin(newBegin);
                localRequest.setEnd(newEnd);
                localRequest.setSeriesID(seriesID);

                /* Sending new reservation to database */
                //reserve(localRequest);
                System.out.println("RESERVATION DONE");
            }
4

2 回答 2

4

即使 request.getEnd() 是在当前 startCal.getTime 之后几天。

那么它不会启动是有道理的!这行代码:

while(startCal.after(request.getEnd()))

说“虽然开始校准是在请求结束之后。” 您将您的数据描述为相反的!

于 2013-05-30T21:37:06.940 回答
1

Calendar#after返回此 Calendar 是否表示指定 Object 表示的时间之后的时间。

因此,您的代码当前正在检查是否startCal是 after request.getEnd(),从您的描述来看,这与您尝试做的相反。

Calendar#before在这里使用来获得所需的结果会更有意义。

于 2013-05-30T21:39:02.307 回答