So fügen Sie dem in einem Jtextfeld mit dem Datentyp „String“ angegebenen Datum die Anzahl der Tage hinzu

StackOverflow https://stackoverflow.com//questions/9690364

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);
     } 
}  
War es hilfreich?

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();
generasacodicetagpre.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top