Here you can find the source of getAlarmOnQuarterHour()
public static long getAlarmOnQuarterHour()
//package com.java2s; /*// w w w . j av a 2s.c o m * Copyright (C) 2012 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import java.util.Calendar; public class Main { /** Setup to find out when the quarter-hour changes (e.g. Kathmandu is GMT+5:45) **/ public static long getAlarmOnQuarterHour() { Calendar nextQuarter = Calendar.getInstance(); // Set 1 second to ensure quarter-hour threshold passed. nextQuarter.set(Calendar.SECOND, 1); nextQuarter.set(Calendar.MILLISECOND, 0); int minute = nextQuarter.get(Calendar.MINUTE); nextQuarter.add(Calendar.MINUTE, 15 - (minute % 15)); long alarmOnQuarterHour = nextQuarter.getTimeInMillis(); long now = System.currentTimeMillis(); long delta = alarmOnQuarterHour - now; if (0 >= delta || delta > 901000) { // Something went wrong in the calculation, schedule something that is // about 15 minutes. Next time , it will align with the 15 minutes border. alarmOnQuarterHour = now + 901000; } return alarmOnQuarterHour; } }