JodaTime - 添加/减去小时和分钟,只有几分钟正确添加/减少?

时间:2013-01-15 11:29:37

标签: android jodatime localtime

有点问题。我有一个onClick,点击后将获得当前时间并添加一定的小时数和分钟数。下面的代码就是我所拥有的,它当前将数据发送到另一个Activity并显示它,除了它不会改变小时数。

public void onClickHere (View v) {

    String ti1me, ti2me, ti3me;

    //carry out calculation
    LocalTime localtime = new LocalTime();
    LocalTime dt = new LocalTime(localtime);

        //Add two hours and subtract 10 minutes
        LocalTime twoHoursLater = dt.plusHours(2);
                  twoHoursLater = dt.minusMinutes(10);

        //Add three hours and 9 minutes
        LocalTime threeHoursLater = dt.plusHours(3);
                  threeHoursLater = dt.plusMinutes(9);

        //Add five hours and subtract 8 minutes
        LocalTime fiveHoursLater = dt.plusHours(5);
                  fiveHoursLater = dt.minusMinutes(8);


    DateTimeFormatter formatter = DateTimeFormat.forPattern("HH:mm");
    ti1me = (twoHoursLater.toString(formatter));
    ti2me = (threeHoursLater.toString(formatter));
    ti3me = (fiveHoursLater.toString(formatter));

    Intent i = new Intent(this, WakeUpMain.class);
    i.putExtra("time1", ti1me);
    i.putExtra("time2", ti2me);
    i.putExtra("time3", ti3me);
    startActivity(i);

}

正如你所看到的那样,我试图获得三次,并为两者添加不同的分钟和小时,分钟增加很好但是小时保持当前时间,或者根据分钟的添加方式和是否添加来改变进入下一个小时。

这是11:22,因为我输入了这个,如果我运行应用程序并单击按钮,则输出为:
11:11
11:31
11:14

时间不变。有没有办法来解决这个问题?小时仅在例如时间是11:05时改变,第一次将显示为10:55。

非常感谢任何帮助。真让我困惑。

1 个答案:

答案 0 :(得分:1)

当您添加分钟时,您需要清空小时数:

twoHoursLater = dt.minusMinutes(10);

使用

LocalTime twoHoursLater = dt.minusMinutes(10);
    twoHoursLater = twoHoursLater.plusHours(2);