2013-03-21 9 views
5

Ich habe einen benutzerdefinierten Kalender erstellt. Er zeigt das Datum des Geräts als aktuelles Datum an. Aber meine Anforderung ist, 12 Tage vor Datum als aktuelles Datum anzuzeigen. z. B. Heute ist 21, aber ich möchte, dass mein Kalender 9 anzeigt. Ich möchte dasselbe mit Jahr auch tun. Ich weiß, wie man das aktuelle Datum bekommt. Ich benutze diesen Code.12 Tage vor Datum als aktuelles Datum anzeigen

_calendar = Calendar.getInstance(Locale.getDefault()); 
month = _calendar.get(Calendar.MONTH) + 1; 
year = _calendar.get(Calendar.YEAR); 
Log.d(tag, "Calendar Instance:= " + "Month: " + month + " " + "Year: " + year); 

Mein neuer Code ist

_calendar = Calendar.getInstance(Locale.getDefault()); 
month = _calendar.get(Calendar.MONTH) + 1; 
year = _calendar.get(Calendar.YEAR); 
Log.d(tag, "Calendar Instance:= " + "Month: " + month + " " + "Year: " + year); 
/*_calendar.add(Calendar.DAY_OF_YEAR, -12);*/ 
_calendar.roll(Calendar.DAY_OF_MONTH, -12); 
_calendar.roll(Calendar.MONTH, -12); 
Calendar _calendar=Calendar.getInstance(); 

Antwort

0

In vielen Sprachen NOW eine Funktion ist, die eine DateTime der Zeit zurückkehrt, wenn sie aufgerufen. Sie können add eine negative (-) Anzahl von Tagen dazu und es wird zurückgeben, was Sie brauchen. Ich vergesse das immer und denke, dass man nur Positives hinzufügen kann, aber das stimmt nicht. ;-)

Hoffe, dass hilft.

1

Versuchen:

_calendar.roll(Calendar.DAY_OF_YEAR, -12); 
_calendar.roll(Calendar.YEAR, -12); 

Dies wird die Tage roll wieder um 12, und dann wird das Jahr von 12.

+0

Hallo Tushar, Dieser Code funktioniert nicht für mich .. – Prinkal

+0

@Prinkal, was ist der Fehler? – Tushar

+0

Kein Fehler, es zeigt das aktuelle Datum an. – Prinkal

0

es versuchen.

0

Dies verschiebt das Datum um 12 Tage zurück, wird bei Bedarf auch den Monat/Jahr ändern.

_calendar.add(Calendar.DAY_OF_YEAR, -12);