如何将Java.util.calendar设置为将来的特定时间段

我正在使用Java的日历在特定的日期和时间设置闹钟。 我知道如何在用户选择特定日期和时间时使其工作。 例如,如果用户想要在2013年7月17日上午10:45设置闹钟,我使用以下代码:

//Get the calendar instance. Calendar calendar = Calendar.getInstance(); //Set the time for the notification to occur. calendar.set(Calendar.YEAR, 2013); calendar.set(Calendar.MONTH, 6); calendar.set(Calendar.DAY_OF_MONTH, 17); calendar.set(Calendar.HOUR_OF_DAY, 10); calendar.set(Calendar.MINUTE, 45); calendar.set(Calendar.SECOND, 0); 

当我想在特定日期和时间设置警报时,上述所有代码都能正常工作。 我的问题是,如何设置一个日历实例,用户用户希望闹钟在当前日期和时间20分钟后离开? 因此,如果当前时间是下午6:50,我需要在晚上7:10报警。 如何以编程方式设置?

我尝试通过Java.util.calendar的内置方法获取当前日期和时间,并尝试向Calendar.MINUTEvariables添加20分钟。 但是,如果当前时间距离午夜不到20分钟(日期会发生变化),或者距离另一个小时20分钟(小时会发生变化),我认为这不会起作用。 我怎样才能解决这个问题? 感谢你的帮助!

你想看看calendar.add,如果你溢出它会增加下一个字段。

http://developer.android.com/reference/java/util/Calendar.html

你也可以试试这个

  Calendar c = Calendar.getInstance(); c.setTime(new Date()); // c.add(Calendar.YEAR, 5); // Add 5 years to current year c.add(Calendar.DATE, 5); // Add 5 days to current date c.add(Calendar.MONTH, 5); // Add 5 months to current month System.out.println(c.getTime()); 

您可以尝试此链接中指定的calendar.set方法。 如何在特定时间内在android中设置日历当我想在指定时间运行服务时,这对我有用。