2010-06-14 3 views
1

J'ai besoin d'obtenir la date d'hier à partir d'un midlet Java ME.
Je sais que l'objet Calendar de Java a une méthode add mais le calendrier de Java ME ne l'a pas.
Existe-t-il un moyen facile de récupérer la date d'hier?Java ME obtenir la date d'hier

Merci.

Répondre

3

Que diriez-vous quelque chose comme

Calendar c = Calendar.getInstance(); 
c.setTimeInMillis(c.getTimeInMillis() - MILLISECONDS_OF_ONE_DAY); 

??

1

Sinon, quelque chose comme ceci:

Calendar c = Calendar.getInstance(); 
c.set(Calendar.DATE, c.get(Calendar.DATE) - 1); 
c.computeTime(); // Make sure getTime returns the updated time 

(Ce code doit être conforme à la CLDC 1.1 Calendar class)

+0

Etes-vous sûr que cela ne lancera pas une 'ArrayIndexOutOfBoundsException'? – aioobe

+0

En fait, je ne sais pas. Je sais que la classe Java Calendar normale permet des jours négatifs et les convertit proprement, mais le JavaDoc pour la classe CLDC Calendar ne dit pas ce qu'il fait pour ceux-là. – Powerlord

1
int ny = year, nm =month, nd =day; 
    nd-=1; 
    if (nd <= 0){ 
     nd = 31; 
     nm-=1; 
    } 
    if (nm <= 0){ 
     nm = 12; 
     ny-=1; 
    } 
    Calendar cal = Calendar.getInstance(); 
    try{ 
     cal.set(Calendar.YEAR, ny); 
     cal.set(Calendar.MONTH,nm); 
     cal.set(Calendar.DAY_OF_MONTH,nd); 
    }catch(ArrayIndexOutOfBoundsException e){ 
     nd-=1; 
     cal.set(Calendar.YEAR, ny); 
     cal.set(Calendar.MONTH,nm); 
     cal.set(Calendar.DAY_OF_MONTH,nd); 
    } 
    return new SimpleDate(cal.getTime()); 

calendrier jeter exception, si mauvaise date est spécifiée. De cette façon, nous vérifions si le jour du mois est correct.

+0

essayer partie de capture doit être en boucle! février! – German