Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中检查所选日期是否比当前日期多8天_Android_Date - Fatal编程技术网

如何在android中检查所选日期是否比当前日期多8天

如何在android中检查所选日期是否比当前日期多8天,android,date,Android,Date,我正在开发一项功能,希望选择比当前日期多8天的日期。我已经实施了一个案例,但在某些情况下不起作用。请帮忙 在某些情况下,我得到了错误的数据 //代码相同 //获取开始日期的代码 start_date.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) {

我正在开发一项功能,希望选择比当前日期多8天的日期。我已经实施了一个案例,但在某些情况下不起作用。请帮忙

在某些情况下,我得到了错误的数据

//代码相同

//获取开始日期的代码

    start_date.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {

            switch (motionEvent.getAction()) {
                case MotionEvent.ACTION_DOWN:

                    final Calendar c = Calendar.getInstance();
                    mYear = c.get(Calendar.YEAR);
                    mMonth = c.get(Calendar.MONTH);
                    mDay = c.get(Calendar.DAY_OF_MONTH);


                    DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(),
                            new DatePickerDialog.OnDateSetListener() {

                                @Override
                                public void onDateSet(DatePicker view, int year,
                                                      int monthOfYear, int dayOfMonth) {


                                    monthOfYear = monthOfYear + 1;
                                    mDay = mDay;
                                    selectedDate = dayOfMonth;


                                    Log.e("TAG", "onDateSet: "+dayOfMonth +"%%"+mDay );

                                 /*date code starts*/
                                    if (dayOfMonth > mDay + 8) {
                                        if (mDay > 20 && monthOfYear == 2) {
                                            if (monthOfYear == 3) {
                                                start_date.setText(dayOfMonth + "-" + (monthOfYear) + "-" + year);
                                            } else {
                                                Toast.makeText(getActivity(), "change your month", Toast.LENGTH_SHORT).show();

                                            }
                                        } else if (mDay > 22 && monthOfYear != 2) {
                                            if (monthOfYear > monthOfYear + 1 && monthOfYear == 12) {
                                                if (monthOfYear == 1 && year == year + 1) {
                                                    start_date.setText(dayOfMonth + "-" + (monthOfYear) + "-" + year);

                                                } else {
                                                    Toast.makeText(getActivity(), "change year", Toast.LENGTH_SHORT).show();

                                                }
                                            } else if (monthOfYear == monthOfYear + 1) {
                                                start_date.setText(dayOfMonth + "-" + (monthOfYear) + "-" + year);

                                            } else {
                                                Toast.makeText(getActivity(), "select proper month", Toast.LENGTH_SHORT).show();

                                            }
                                        } else {
                                            start_date.setText(dayOfMonth + "-" + (monthOfYear) + "-" + year);

                                        }

                                    } else {
                                        Toast.makeText(getActivity(), getResources().getString(R.string.selectDate8days), Toast.LENGTH_SHORT).show();
                                    }


                                 /*end*/


                                }
                            }, mYear, mMonth, mDay);
                    datePickerDialog.show();

                    break;
                case MotionEvent.ACTION_UP:
                    break;

            }


            return true;

        }


    });

这是我已经实现的代码。

为了避免月份和年份检查:

long diffInMillisec =  currentdate.getTime()-registereddate.getTime();

        // Get difference between two dates in days
        long diffInDays = diffInMillisec / (24 * 60 * 60 * 1000);

if(diffInDays > 8){
    // Here your  code from when your current date is greater than 8 days..
}
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
Date todayStart = cal.getTime();
cal.add(Calendar.DATE, 8);
Date plus8Days = cal.getTime();
cal.add(Calendar.DATE, 1);
Date plus9Days = cal.getTime();

然后在某些情况下只需检查您选择的日期是否介于
加8天
加9天

之间。在哪些情况下?只需获取今天,添加8,然后检查它是否等于所选日期。查找两个日期的时间戳的差异。如何检查我使用的是非常长的方法。你能告诉我吗@VladMatvienko
只需获取今天,添加8,然后检查它是否等于我已经告诉过的选定日期。您还需要检查
月份和年份
@VladMatvienko
start_date.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {

            switch (motionEvent.getAction()) {
                case MotionEvent.ACTION_DOWN:

                    final Calendar c = Calendar.getInstance();
                    mYear = c.get(Calendar.YEAR);
                    mMonth = c.get(Calendar.MONTH);
                    mDay = c.get(Calendar.DAY_OF_MONTH);

                    DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(),
                            new DatePickerDialog.OnDateSetListener() {

                                @Override
                                public void onDateSet(DatePicker view, int year,
                                                      int monthOfYear, int dayOfMonth) {
                                    int myear = year;
                                    int mmonth = monthOfYear + 1;
                                    int mday = dayOfMonth;

                                   String mDate = mday + "/" + mmonth + "/" + myear;

                                    if (show(mDate) > 8) {
                                       Toast.makeText(getActivity(), "Selected date is greater than 8 days", Toast.LENGTH_SHORT).show();
                                    } else {
                                        Toast.makeText(getActivity(), "Selected date is less than 8 days", Toast.LENGTH_SHORT).show();
                                    }
                                }
                            }, mYear, mMonth, mDay);
                    datePickerDialog.show();

                    break;
                case MotionEvent.ACTION_UP:
                    break;
            }
            return true;
        }
    });


private int show(String time) {
        try {
            String outputPattern = "dd/MM/yyyy";
            SimpleDateFormat format = new SimpleDateFormat(outputPattern);

            Date Date1 = format.parse(getdate());
            Date Date2 = format.parse(time);
            long mills = Date2.getTime() - Date1.getTime();
            long Day1 = mills / (1000 * 60 * 60);

            day = (int) Day1 / 24;

        } catch (Exception e) {
            e.printStackTrace();
        }
        return day;
    }


    private String getdate() {
        String time = "";
        try {
            String outputPattern = "dd/MM/yyyy";

            Calendar c = Calendar.getInstance();
            SimpleDateFormat df = new SimpleDateFormat(outputPattern);
            time = df.format(c.getTime());

        } catch (Exception e) {
            e.printStackTrace();
        }

        return time;
    }