2009-12-16 4 views
2

Comme je travaille sur une application de rappel, j'ai besoin d'afficher la boîte de dialogue de rappel lorsque la date définie est arrivée pour une donnée particulière. J'utilise le code suivant pour stocker la date.Blackberry - Régler l'heure de la date au début d'une journée (00:00)

long now = System.currentTimeMillis(); 
DateField dateField = new DateField("",now,DateField.DATE); 
long date = dateField.getDate(); 

Par exemple, lorsque le dispositif date & heure, le 15 Décembre, 2009 & 05:30:43, je stocke un ensemble de données pour me rappeler le 18 Décembre 2009. Quand mon application veux rappelez-le, rappel vient à la même date que prévu, mais aussi dans le même temps seulement. i.e: 18 décembre 2009, à 5:30:43 A.M. Mais je voulais être montré dès que le 18 décembre 2009 est arrivé quand il est midi, je veux le rappeler.

Je ne veux pas avoir le temps également dans la date stockée. Je veux juste rappeler le dialogue dès que le jour est arrivé à 12h00.

Je pense que quand je le stocker, au lieu de « System.currentTimeMillis », je dois stocker avec toujours '12: 00 heures » en millisecondes

Quelqu'un peut-il s'il vous plaît me conseiller pour y parvenir professionaly

?

Merci beaucoup

Répondre

2

vous pouvez utiliser les mathématiques.

public long getDayStartByMath(long date) { 
    // 1000*60*60*24 
    long fullDayPart = 86400000; 
    return date - date % fullDayPart + (fullDayPart >> 1); 
} 

Autre moyen est d'utiliser Calendar:

public long getDayStartByCalendar(long date) { 
    Calendar c = Calendar.getInstance(); 
    c.setTime(new Date(date)); 
    c.set(Calendar.AM_PM, Calendar.AM); 
    c.set(Calendar.HOUR, 12); 
    c.set(Calendar.MINUTE, 0); 
    c.set(Calendar.SECOND, 0); 
    c.set(Calendar.MILLISECOND, 0); 
    return c.getTime().getTime(); 
} 
+0

Merci beaucoup. Génial! – Getsy

+0

De rien! –

Questions connexes