1

私は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())
}

Expense クラスは次のとおりです。 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

4

1 に答える 1

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());
   }
于 2013-08-24T13:39:28.147 に答える