Frage

Ich habe ein Programm, das auf 1/1/09 beginnen muss, und wenn ich einen neuen Tag starten, wird mein Programm am nächsten Tag zeigen. Das ist, was ich habe, so weit:

GregorianCalendar startDate = new GregorianCalendar(2009, Calendar.JANUARY, 1);
SimpleDateFormat sdf = new SimpleDateFormat("d/M/yyyy"); 
public void setStart()
{
    startDate.setLenient(false);
    System.out.println(sdf.format(startDate.getTime()));
}

public void today()
{
    newDay = startDate.add(5, 1);
    System.out.println(newDay);
//I want to add a day to the start day and when I start another new day, I want to add another day to that.
}

Ich bin immer der Fehler gefunden Leere aber erwartet int, in 'Newday = startDate.add (5, 1);' Was soll ich tun?

War es hilfreich?

Lösung

Die Calendar Objekt hat eine < a href = "http://java.sun.com/javase/6/docs/api/java/util/Calendar.html#add(int,%20int)" rel = "noreferrer"> add Verfahren der es ermöglicht eine Werte eines bestimmten Feld zu addieren oder subtrahieren.

Beispiel:

Calendar c = new GregorianCalendar(2009, Calendar.JANUARY, 1);
c.add(Calendar.DAY_OF_MONTH, 1);

Die Konstanten für das Feld spezifizieren können im „Feld Summary“ des Calendar Klasse.

Nur für die Zukunft, der Spezifikation Java API eine Menge enthält von hilfreiche Informationen darüber, wie die Klassen zu verwenden, der Teil des Java-API ist.


Update:

  

Ich bin immer der Fehler gefunden Leere aber   erwartet int, in ‚Newday =   startDate.add (5, 1);‘ Was sollte ich   tun?

Die add Methode gibt nichts zurück, also das Ergebnis zuweisen versuchen Calendar.add des Aufrufs ist nicht gültig.

Der Compiler-Fehler zeigt an, dass man versucht, eine void auf eine Variable mit dem Typ des int zuzuordnen. Dies gilt nicht, da man nicht „nichts“ zu einem int Variablen zuweisen kann.

Nur eine Vermutung, aber vielleicht kann dies sein, was erreicht wird versucht:

// Get a calendar which is set to a specified date.
Calendar calendar = new GregorianCalendar(2009, Calendar.JANUARY, 1);

// Get the current date representation of the calendar.
Date startDate = calendar.getTime();

// Increment the calendar's date by 1 day.
calendar.add(Calendar.DAY_OF_MONTH, 1);

// Get the current date representation of the calendar.
Date endDate = calendar.getTime();

System.out.println(startDate);
System.out.println(endDate);

Ausgabe:

Thu Jan 01 00:00:00 PST 2009
Fri Jan 02 00:00:00 PST 2009

Was berücksichtigt werden muss, ist das, was Calendar tatsächlich ist.

A Calendar ist keine Darstellung eines Datums. Es ist eine Darstellung eines Kalenders, und wo es zur Zeit zeigt auf. Um eine Darstellung, wo der Kalender auf im Moment zeigt zu bekommen, sollte man ein Date vom Calendar die getTime Methode.

Andere Tipps

Wenn Sie es Anforderung weise schwingen kann, verschieben Sie alle Ihre Zeit / Datum zu JODA benötigt, die eine viel bessere Bibliothek ist, mit dem zusätzlichen Bonus, dass fast alles, was unveränderlich ist, Multithreading Sinn kommt kostenlos.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top