So fügen Sie dem in einem Jtextfeld mit dem Datentyp „String“ angegebenen Datum die Anzahl der Tage hinzu
-
13-12-2019 - |
Frage
Guten Tag .Ich möchte nur nach dem Hinzufügen von Tagen zu einem bestimmten Datum fragen.Ich habe ein Jtexfield (txtStart) und ein weiteres Jtexfield (txtExpiry).Ich muss in txtExpiry das Datum nach 102 Tagen ab dem Datum in txtStart anzeigen.Ich verwende das Ereignis KEYRELEASED.Nachdem ich txtStart eingegeben habe, erscheint das Datum mit zusätzlichen 102 Tagen in txtExpiry.
Hier ist mein Code, aber er ist immer noch fehlerhaft.
private void txtStartKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
// set calendar to 1 Jan 2007
int a = Integer.parseInt(txtStart.getText());
Calendar calendar = new GregorianCalendar(a,a,a);
calendar.add(Calendar.DAY_OF_MONTH,102);
PrintCalendar(calendar);
}
private void PrintCalendar(Calendar calendar){
// define output format and print
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
String date = sdf.format(calendar.getTime());
long add = Date.parse(date);
txtExpiry.setText(add); -----> this part here also has an error.
}
Mein Code generiert das Datum in txtExpiry immer noch nicht.Dank im Voraus
Hier ist der richtige Code, nachdem Sie Hilfe erhalten haben:
private void txtStartKeyReleased(java.awt.event.KeyEvent evt) {
try {
Date date1;
date1 = new SimpleDateFormat("yyyy-MM-dd").parse(txtStart.getText());
System.out.println(date1);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.setTime(date1);
cal.add(Calendar.DATE, 102);
String expDateString = sdf.format(cal.getTime());
txtExpiry.setText(expDateString);
}catch (ParseException ex) {
Logger.getLogger(ClientInfo.class.getName()).log(Level.SEVERE, null, ex);
}
}
Lösung
Verwenden
yyyy-MM-dd
Notiz:Hauptstadt MM
Sehen : SimpleDateFormat
Sobald Sie die Datumsinstanz haben, können Sie sie verwenden Calendar
die Tage rechnen
Calendar cal = Calendar.getInstance();
cal.setTime(parsedDate);
cal.add(Calendar.DATE, 102);
String expDateString = dateFormatter.format(cal.getTime());
Andere Tipps
Sobald Sie das Richtige haben Format, Du könntest benutzen JodaTime.Sie könnten das analysieren String
value direkt mit JodaTime, aber da Sie das bereits getan haben, habe ich mich nicht darum gekümmert ...
Date date = ...;
DateTime dt = new DateTime(date);
dt = dt.plusDays(102);
date = dt.toDate();