如何计算Android中日期范围材料选择器之间的天数

时间:2020-07-05 09:37:23

标签: android material-design android-datepicker material-components-android

如何计算日期范围选择器之间的天数

我正在尝试,但是对此没有解决方案,请任何人都可以帮助我

我非常需要数天 当用户从日期选择器范围中选择日期范围时 然后设置文本的总天数。

    try {

        String valu1 = String.valueOf(constraintsBuilder.setStart(calendar.getTimeInMillis()));
        String valu2 = String.valueOf(constraintsBuilder.setEnd(calendar.getTimeInMillis()));
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MMM-yyyy");
        Date date1 = simpleDateFormat.parse(valu1);
        Date date2 = simpleDateFormat.parse(valu2);
        long difference = Math.abs(date1.getTime() - date2.getTime());

        Log.i("Testing","days" +difference);
        textView.setText("days" +difference);

    }
    catch(Exception ex)
    {

        ex.printStackTrace();
    }

主要代码是

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    showDatePicker= findViewById(R.id.showDatepicker);
    textView=findViewById(R.id.textView);

    Calendar calendar =Calendar.getInstance(TimeZone.getTimeZone("UTC+06"));
 calendar.clear();

    MaterialDatePicker.Builder builder = MaterialDatePicker.Builder.dateRangePicker();
    builder.setTitleText("Select Date");
  


    final MaterialDatePicker materialDatePicker = builder.build();

    showDatePicker.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            materialDatePicker.show(getSupportFragmentManager(),"DATE_PICKER");

        }
    });


    materialDatePicker.addOnPositiveButtonClickListener(new MaterialPickerOnPositiveButtonClickListener() {
        @Override
        public void onPositiveButtonClick(Object selection) {

            showDatePicker.setText(materialDatePicker.getHeaderText());


        }
    });
}

1 个答案:

答案 0 :(得分:0)

您可以使用类似的内容:

    MaterialDatePicker<Pair<Long, Long>> picker = builder.build();
    picker.show(getSupportFragmentManager(), picker.toString());

    picker.addOnPositiveButtonClickListener(new MaterialPickerOnPositiveButtonClickListener<Pair<Long, Long>>() {
        @Override public void onPositiveButtonClick(Pair<Long,Long> selection) {
            Long startDate = selection.first;
            Long endDate = selection.second;

            long msDiff = endDate - startDate;
            long daysDiff = TimeUnit.MILLISECONDS.toDays(msDiff);
            

        }
    });
相关问题