hola, creo que sí que te he entendido, yo hago eso mismo, en una aplicación que se ejecuta todos los días a las 00:00.
Esto es lo que hago:
Código:
Timer timer = new Timer();
Date today = new Date();
Time now = new Time(today.getTime());
String time = now.toString();
long milliSecondsNow = (Long.valueOf(time.substring(0,2))*3600 + Long.valueOf(time.substring(3,5))*60 + Long.valueOf(time.substring(6,8)))*1000;
long periodTime = 24*3600*1000;
timer.schedule(timerTask, (periodTime-milliSecondsNow), periodTime);
Como ves, miro los milisegundos que tengo ahora mismo del día (milliSecondsNow).
Calculo el número de milisegundos desde las 00:00 hasta mi hora de timer (tb las 00:00).
Y el temporizador arranca cuando pasen el número de segundos adecuados.
Como tú quieres a las 18:30 te aconsejo un if (millisAhora < millisTimer) restas de una manera
else
de otra.
Espero que te sirva. Saludos