要查找两个日期的天数,我们会发现SimpledateFormat

时间:2017-02-18 09:35:28

标签: java android date

我希望从日期"找到b / w"的总天数至"迄今为止"。提前致谢

this is error in logcat when i run the app the app crashes and shows this.这是我的完整代码

public class Main2Activity extends AppCompatActivity {
    EditText ed1,ed2,ed4,ed5,ed6;Button b1; int day_x;int month_x;int year_x;int DIALOG_ID = 1;
    @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main2); AlertDialog.Builder a_builder = new AlertDialog.Builder(Main2Activity.this);a_builder.setMessage("Please Enter your\n'Name' and 'Date of Birth'.").setCancelable(false).setTitle("Alert!!!").setNegativeButton("ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { dialogInterface.cancel(); }}).show();date_selector(); to_date();final Calendar cal = Calendar.getInstance(); year_x = cal.get(Calendar.YEAR); month_x = cal.get(Calendar.MONTH); day_x = cal.get(Calendar.DAY_OF_MONTH); } public void date_selector() {ed2 = (EditText) findViewById(R.id.editText2); ed5 = (EditText) findViewById(R.id.editText5);ed4 = (EditText) findViewById(R.id.editText4);ed6 = (EditText) findViewById(R.id.editText6);ed1 = (EditText) findViewById(R.id.editText1);ed2.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) {showDialog(DIALOG_ID);
                    }
                }
        );
    }

    @Override
    protected Dialog onCreateDialog(int ids) {
        if (ids == DIALOG_ID)
            return new DatePickerDialog(Main2Activity.this, dickerListener, year_x, month_x, day_x);
        return null;
    }

    private DatePickerDialog.OnDateSetListener dickerListener =
            new DatePickerDialog.OnDateSetListener() {
                public long dateEvent;

                @Override
                public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
                    year_x = i;
                    month_x = i1+1 ;
                    day_x = i2;
                    ed2.setText((day_x+"/"+month_x+"/"+year_x));//showing DOB
                    //String stores=ed2.getText().toString();
                    final Calendar cal = Calendar.getInstance();
                   int year_y = cal.get(Calendar.YEAR);
                   int month_y = cal.get(Calendar.MONTH);
                   int day_y = cal.get(Calendar.DAY_OF_MONTH);
                   int month_z=month_y+1;
                   // SimpleDateFormat df = new SimpleDateFormat("dd mm yyyy");
                    ed5.setText(day_y+"/"+ month_z+"/"+ year_y);


                    String value = ed2.getText().toString();
                    ed4.setText(value);

                  Daysss_check();
                }
            };

     public void Daysss_check() {              //total number of days???
          ed5 = (EditText) findViewById(R.id.editText5);
          ed4 = (EditText) findViewById(R.id.editText4);
          ed6 = (EditText) findViewById(R.id.editText6);
          ed2 = (EditText) findViewById(R.id.editText2);
          SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
          String firstDate = ed2.getText().toString();
          String secondDate = ed5.getText().toString();
          try {

              Date date1 = df.parse(firstDate);
              Date date2 = df.parse(secondDate);
              long diff = date2.getTime() - date1.getTime();
             long diffDays= TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS);

             // float dayCount = (float) diff / (24 * 60 * 60 * 1000);
              //String.valueOf((int) dayCount);
              String myDaycount = String.valueOf(diffDays);
              ed6.setText(myDaycount);
          } catch (ParseException e) {
              e.printStackTrace();
          }


      }

this is the output of my app and i want to find total number of days b/w "from date" to "To date". Thanks in advance

1 个答案:

答案 0 :(得分:0)

long diff = date1.getTime() - date2.getTime();
long seconds = diff / 1000;
long minutes = seconds / 60;
long hours = minutes / 60;
long days = hours / 24;

请试试这个。希望它能帮到你