2012-03-28 4 views
1

Ich bin in der Lage, ein Datum in meiner Blackberry App zu erhöhen und zu verringern.Ausgabe mit Datum Inkrement

Das Problem kommt, wenn ich einige Daten im Popup-Bildschirm ändern und auf Weiter klicken, das Datum bleibt gleich, ohne zu inkrementieren, aber der lange Wert ist der gleiche wie der inkrementierte Wert.

Calendar calendar = Calendar.getInstance(); 
String dateFormat = compareDate; //mar 28,2012-compare date value 
String m = dateFormat.substring(0, 3); 
String dd = dateFormat.substring(4, 6); 
String y = dateFormat.substring(7, 11); 
dateFormat = dd + " " + m + " " + y; // 28 mar 2012 

long dateLong = HttpDateParser.parse(dateFormat); 
long ctimeMinus50Days = dateLong + 1L * ((long) DateTimeUtilities.ONEDAY); 
calendar.setTime (new Date(ctimeMinus50Days)); 
System.out.println("ctimeMinus50Days" + ctimeMinus50Days); 

Date d = calendar.getTime(); 
SimpleDateFormat sd1Exactform = new SimpleDateFormat("MMM dd,yyyy"); 
sd1Exactform.format(d); 

if (dateCurrent != null) { //static value so making null before assigning new value 
    dateCurrent = null; 
} 
dateCurrent = sd1Exactform.format(d); 

ctimeMinus50Days Wert ist gleich, wenn Werke für Schrittmaß ist, aber wenn ich dateCurrent Ausgabe zu sehen ist es das alte Datum nur obwohl Daten long-Wert zeigt erhöht.

+1

Verwenden Sie java.util.date, um Daten im Unix-Timestamp-Format zu normalisieren. Sie können viele Probleme vermeiden, wenn Sie Mathe in diesem Format verwenden und das Format TT.MM.JJJJ nur für die Benutzerpräsentation verwenden. – rosco

Antwort

3

können Sie diese Klasse verwenden

public class DateUtilities { 
    static Calendar calendar = Calendar.getInstance(); 
    public static long getPreviousDate(long currentDate){ 
     calendar.setTime(new Date(currentDate)); 
     calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) - 1); 
     return calendar.getTime().getTime(); 
    } 
    public static long getNextDate(long currentDate){ 
     calendar.setTime(new Date(currentDate)); 
     calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + 1); 
     return calendar.getTime().getTime(); 
    } 
} 
-1

Kalender Klassenmethode macht hinzufügen, die Sie hinzufügen/subtrahieren Datum Elemente verwenden sollten. Im Folgenden finden Sie ein Beispiel, um einen Tag zu einem Datum hinzuzufügen, das durch die Zeichenfolge dargestellt wird:

import java.text.SimpleDateFormat; 
import java.util.Calendar; 
import java.util.Date; 

public class Test { 

public static void main(String[] args) throws Exception{ 
    String dateCurrent = "Mar 1,2012"; 
    SimpleDateFormat sdExactform = new SimpleDateFormat("MMM d,yyyy"); 
    Date date = sdExactform.parse(dateCurrent); 
    Calendar calendar = Calendar.getInstance(); 
    calendar.setTime(date); 
    calendar.add(Calendar.DATE, 1); 
    System.out.println(calendar.toString()); 
    } 

} 
+0

und um einen Tag zu subtrahieren, muss man einfach ein Negativ zB hinzufügen. 'calendar.add (Calendar.DAY_OF_YEAR, -1);' – radimpe

+1

@daniel calendar.add ist nicht Teil von blackberry calendar api –