我正在使用primefaces版本3.5和p:schedule Control
我在事件“eventMove”上的日期错误。
我的代码片段如下
内部托管Bean类ScheduleController
public void onEventMove(ScheduleEntryMoveEvent scheduleEntryMoveEvent)
{
Expense exp = (Expense) scheduleEntryMoveEvent.getScheduleEvent()
.getData();
System.out.println("Expense Date="+exp.getDate())
}
和费用类如下 import java.util.Date;
public class Expense
{
private Date date;
public Date getDate()
{
return date;
}
public void setDate(Date date)
{
this.date = date;
}
}
用于在计划中存储费用
public ScheduleController()
{
allExpenses = expensePeer.getList();
for (Expense expense : allExpenses)
{
eventModel.addEvent(new DefaultScheduleEvent(expense
.getDescription(), expense.getDate(), expense.getDate(),
expense));
}
}
当我点击8月15日并将时间表事件(费用在我的情况下)X到8月16日时,产量是8月17日,预计产量是8月16日。
其他一些动作正在跟随
从15变为14,预期14,变为13
从13移动到10,预期10,得到7
从7变为12,预期为12,变为17
答案 0 :(得分:1)
在更新日期之前尝试此操作
public void onEventMove(ScheduleEntryMoveEvent scheduleEntryMoveEvent)
{
Expense exp = (Expense) scheduleEntryMoveEvent.getScheduleEvent()
.getData();
System.out.println("Expense Date Before="+exp.getDate())
java.util.Calendar newCal = new GregorianCalendar();
newCal.setTime(exp.getDate());
newCal.add(Calendar.DATE, (-1 * scheduleEntryMoveEvent.getDayDelta()));
newCal.add(Calendar.MINUTE, (-1 * scheduleEntryMoveEvent.getMinuteDelta()));
exp.setDate(newCal.getTime());
System.out.println("Expense Date After="+exp.getDate());
}