Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 时间选择器问题_Java_Android - Fatal编程技术网

Java 时间选择器问题

Java 时间选择器问题,java,android,Java,Android,我在安卓系统中有一个计时器来设置一个小时的闹钟(AlarmManager)。问题是我发现了这个问题 public void onTimeSet( TimePicker view, int hourOfDay, int minute ) { // Some logical code here } 因此,在我的闹钟中,用户可以设置通知开始前的时间,5分钟、10分钟或30分钟。所以 我怎样才能得到小时和分钟,以缩短闹钟发出通知前的时间 例如: User set alarm: 13:30 and

我在安卓系统中有一个计时器来设置一个小时的闹钟(AlarmManager)。问题是我发现了这个问题

 public void onTimeSet( TimePicker view, int hourOfDay, int minute )
 { // Some logical code here }
因此,在我的闹钟中,用户可以设置通知开始前的时间,5分钟、10分钟或30分钟。所以

我怎样才能得到小时和分钟,以缩短闹钟发出通知前的时间

例如:

User set alarm: 13:30 and 10 Minutes before, i need to get 13:20.

Another example: user sets 2:5AM and 30 minutes before, i need to get 1:35AM
首先,创建:

Calendar cal = Calendar.getInstance();
cal.set(year, month, day, hourOfDay, minute);
long exact_alarm_time = cal.getTimeInMillis();

// if user want to set before 10 minutes
long before = 10*60*1000;

// now subtract the before time from current time
long newTime = exact_alarm_time - before;

Calendar cNew = Calendar.getInstance();
cal.setTimeInMillis(newTime);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int date = cal.get(Calendar.DATE);
int min = cal.get(Calendar.MINUTE);
int hour = cal.get(Calendar.HOUR);

// now set alarm for the new time

你有没有看到在没有领域,我要检查thx!只要读一遍就行了