codeschnipssel

pi^2

Mitglied
hallo leute

ich brauche eure hilfe, ich verstehe einen schnipssel ganz und gar nicht und das ist ja nicht Idee der ganzen Sache^^:
Java:
Calendar calendar = Calendar.getInstance();

calendar.setTime(startDate);

calendar.add(Calendar.MONTH, 1);

calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.add(Calendar.DATE, -1);
java.util.Date lastDay = calendar.getTime();
Idee dieser Methode ist es folgendes, ein Enddatum zu setzen, dafür hat man ein startdatum in der klasse definiert.
was mich verwirrt, ist das add irgendwas.. ich könnte zwar jeden schritt erklären, was passiert, aber ich verstehe die Logik nicht, sorry, wenn das dumm tönt^^..
 
Zuletzt bearbeitet von einem Moderator:
X

Xyz1

Gast
Hrhr, tönt ... . Der Schnipsel berechnet den letzten Tag des aktuellen Monats (Zeitpunkt).

Edit: Ohne die genaue Umsetzung zu sehen, würd ich aber calendar.set(Calendar.DAY_OF_MONTH, 1); zuerst aufrufen, vielleicht ist der nächste Monat Februar.
 
Zuletzt bearbeitet von einem Moderator:

pi^2

Mitglied
danke..
ich begreife diese zwei zeilen nicht:
Java:
calendar.add(Calendar.MONTH, 1);
calendar.set(Calendar.DAY_OF_MONTH, 1);
für was steht die konstante 1?
also, 1= wir fügen einen Monat hinzu?
vielleicht zu meiner Verteidigung:
ich beschfätige mich seit 3 Wochen mit Java^^..
 
Zuletzt bearbeitet von einem Moderator:
X

Xyz1

Gast
ja, sorry, dass ich mich erst jetzt melde.

danke..
ich begreife diese zwei zeilen nicht:
Java:
calendar.add(Calendar.MONTH, 1);
calendar.set(Calendar.DAY_OF_MONTH, 1);
für was steht die konstante 1?
also, 1= wir fügen einen Monat hinzu?
vielleicht zu meiner Verteidigung:
ich beschfätige mich seit 3 Wochen mit Java^^..

add 1 erhöht den Monat um 1 (nächster Monat),
set 1 setzt auf den ersten Tag des Monats,

zusammen bekommt man so den letzten Tag des Monats Ultimo.

Java:
    public static void main(String[] args) {
        Random r = new Random();
        for (int i = 0; i < 10; i++) {
            Date d = getLDay(new Date(r.nextLong() >>> 16));
            DateFormat df = DateFormat.getDateInstance(DateFormat.FULL);
            System.out.println(df.format(d));
        }
    }

    private static Date getLDay(Date date) {
        GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
        gc.setTime(date);
        gc.set(Calendar.DAY_OF_MONTH, 1);
        gc.add(Calendar.MONTH, 1);
        gc.add(Calendar.DATE, -1);
        return gc.getTime();
    }

Code:
Montag, 30. Juni 7253
Montag, 30. September 10622
Donnerstag, 29. Februar 9168
Freitag, 28. Februar 7062
Sonntag, 31. Oktober 9554
Freitag, 28. Februar 4651
Freitag, 30. Juni 4141
Mittwoch, 31. März 10715
Montag, 30. April 4762
Sonntag, 31. Oktober 8027

Etwas astronomische Werte (obwohl schon verschoben, aber wurst)
 

pi^2

Mitglied
hallo freunde

danke für die ausführlichen Erklärungen, vor allem vom DerWissende, hat mir die augen geöffnet^^..
 
X

Xyz1

Gast
Zeile 5 könnte/müsste auch außerhalb der Schleife liegen. Geschwindigkeit.

Nagut, wenn wir etwas helfen könnten, freut das alle um so mehr. :D
 

Neue Themen


Oben