كيفية إضافة عدد الأيام إلى التاريخ المحدد في jtextfield مع نوع بيانات السلسلة

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

سؤال

يوم جيد .أريد فقط أن أسأل عن إضافة أيام في تاريخ معين.لدي jtexfield (txtStart) وjtexfield آخر (txtExpiry).أحتاج إلى عرض التاريخ في txtExpiry بعد 102 يومًا من التاريخ الموجود في txtStart.أنا أستخدم حدث KEYRELEASED.بعد أن أقوم بإدخال txtStart، سيظهر التاريخ مع 102 يومًا إضافية في txtExpiry.

هذا هو الكود الخاص بي ولكنه لا يزال خاطئًا.

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.
     }

لا يزال الكود الخاص بي لا ينشئ التاريخ في txtExpiry.شكرا لك مقدما

إليك الرمز الصحيح بعد تلقي المساعدة:

 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);
     } 
}  
هل كانت مفيدة؟

المحلول

يستخدم

yyyy-MM-dd

ملحوظة:رأس المال مم

يرى : SimpleDateFormat

الآن، بمجرد حصولك على مثيل التاريخ الذي يمكنك استخدامه Calendar للقيام بحساب الأيام

Calendar cal = Calendar.getInstance();
cal.setTime(parsedDate);
cal.add(Calendar.DATE, 102);
String expDateString = dateFormatter.format(cal.getTime());

نصائح أخرى

بمجرد أن يكون لديك تنسيق ، يمكنك استخدام jodatime .يمكنك تحليل قيمة String باستخدام Jodatime مباشرة، ولكن منذ أن قمت بذلك بالفعل، لم أزعجك ...

giveacodicetagpre.

giveacodicetagpre.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top