Hinzufügen einen Tag von einem Kalender in Android scheitert an 31.
Übernehmen derzeit das Datum ist der 28. Wenn ich rufen Sie die folgenden Befehle in der Reihenfolge der Ausgabe wird
cal.add(Calendar.DATE, 1); //Day = 29
cal.add(Calendar.DATE, 1); //Day = 30
cal.add(Calendar.DATE, 1); //Day = 31
cal.add(Calendar.DATE, 1); //Day = 31
cal.add(Calendar.DATE, -1); //Day = 29
Warum ist das springen nicht in den nächsten Monat? Und warum ist es fest am 31. (aber wenn Sie minus eins springt er auf 29)?
InformationsquelleAutor dinesh707 | 2012-08-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie 1 hinzufügen, um die
Calendar.DATE
Feld Inkrement den Monat als auch, wenn das Ende des Monats erreicht ist (31 in dem Fall, für Kann), so dass Sie schrieb, ist nicht sinnvoll.Debug und stellen Sie sicher, dass die Tag-Wert ist in der Tat das, was Sie denken, es ist
InformationsquelleAutor IncrediApp
Können Sie ganz einfach tun dies in zwei einfache Möglichkeiten, mein Freund. Erste:
und die zweite ist:
Ich denke, Sie möchten, zu finden, dieses Ding.
Danke.
InformationsquelleAutor Satyaki Mukherjee
Scheint, ich bin falsch! entsprechend der api, roll nur updates, die das spezifische Feld!
wenn Sie hinzufügen von Tagen zu einem Kalender versuchen
diese erhöht werden, Monat und Jahr, wenn überflogen
docs.oracle.com/javase/1.4.2/docs/api/java/util/..., int)
scheint, du bist Recht, die Erklärung auf roll schlägt in die andere Richtung auf dem ersten Platz "Inkrementieren oder Dekrementieren das angegebene Feld und wickeln Sie den Wert des Feldes, wenn es geht über die maximale oder minimale Wert für das aktuelle Datum. Andere Felder wie gewünscht eingestellt werden, um ein einheitliches Datum."
Wie bereits in der Antwort unten stackoverflow.com/a/37291067/2641380 --- cal.hinzufügen(Kalender).Felder day_of_year, 50) arbeitet, um den Termin bekommen nach 50 Tagen statt mit Rollen.
InformationsquelleAutor Kostronor
Die Umsetzung von Kalender verwenden Sie? Weil es scheint zu funktionieren für alle anderen...
InformationsquelleAutor Germann Arlington
Habe ich geprüft, es fügt erfolgreich. Schaut mein code und o/p:
O/p
1
InformationsquelleAutor Nandkumar Tekale
Es ist keine Antwort, nur ein Hinweis: ich fand es geschieht, wenn die Sommerzeit beginnt zwischen den Terminen. Vielleicht ist es dein Fall...
Beispiel: Brazillian Sommerzeit begann in diesem Jahr bei "Sun Oct 20 00:00:00 2013"
Leider bin ich immer noch nicht weiß, wie man Abhilfe.
InformationsquelleAutor Christian
Dies sollte auch den trick tun.
Können Sie testen, es funktioniert mit:
InformationsquelleAutor velval