2017-10-03 3 views
1

J'ai créé une application. J'ai mis un bouton dans mon application. Lorsque je clique sur le bouton, l'heure du clic est enregistrée dans les préférences partagées. Maintenant, je veux créer une méthode isTimeToClick() quand un nouveau jour commence. Comme aujourd'hui, c'est le 3 octobre. Le 12 octobre à 12h00 commencera. Je veux que quand un nouveau jour commence la méthode va commencer.Consulter le nouveau jour à l'aide de Préférences partagées

private boolean isTimeToClick() { 
     SimpleDateFormat localSimpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); 
     try 
     { 
      // here I have to call the method but I don't know what should I use. can anyone help me? 
     } 
     catch (Exception localException) {} 
     return false; 
    } 

Répondre

0

Vous pouvez stocker le temps en millisecondes et le récupérer pour créer une instance de date à partir de préférences partagées et de comparer les dates.

private void saveClickTime() { 
    sp.edit().putLong("mTime", System.currentTimeMillis()).apply(); 
} 

private boolean isTimeToClick() { 
    Date oldDate = new Date(sp.getLong("mTime", System.currentTimeMillis())); 
    GregorianCalendar oldCalendar = new GregorianCalendar(); 
    oldCalendar.setTime(oldDate); 
    Calendar newCalendar = new GregorianCalendar(); 
    return newCalendar.get(Calendar.DATE) != oldCalendar.get(Calendar.DATE) || 
      newCalendar.get(Calendar.MONTH) != oldCalendar.get(Calendar.MONTH) || 
      newCalendar.get(Calendar.YEAR) != oldCalendar.get(Calendar.YEAR); 
} 
+0

Je le sais. mais je ne comprends pas comment comparer les dates :( – Fodis

+0

montrent que je l'utilise? oldDate.compareTo (newDate); if (oldDate.compareTo (newDate)> 0); – Fodis

+0

n ° use date.getYear(), date .getMonth(), date.getDate(), etc .. si elles sont identiques, c'est le même jour sinon c'est un jour différent –