首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MaterialDateTimePicker MinDate,MaxDate杂志

MaterialDateTimePicker MinDate,MaxDate杂志
EN

Stack Overflow用户
提问于 2017-05-16 11:28:53
回答 2查看 867关注 0票数 0

MaterialDateTimePicker库在DateTime应用程序中用作DateTime选择器。需要禁用之前和以后的日期,以便在日历中只显示3天,即。昨天,今天和明天。一切正常,除了选定的日期是一个月前。例如,在选择今天(16-05-2017年)时,它会提前一个月(15-04-2017年)。它显示的是一个月前的日期,而不是返回的一天。代码:

代码语言:javascript
复制
calendar = Calendar.getInstance();

        Year = calendar.get(Calendar.YEAR) ;
        Month = calendar.get(Calendar.MONTH);
        Day = calendar.get(Calendar.DAY_OF_MONTH);

        final Calendar maxDate = Calendar.getInstance();
        maxDate.set(Calendar.DAY_OF_MONTH, maxDate.get(Calendar.DAY_OF_MONTH) + 1);
        maxDate.set(Calendar.MONTH, Month);
        maxDate.set(Calendar.YEAR, Year);

        final Calendar minDate = Calendar.getInstance();
        minDate.set(Calendar.DAY_OF_MONTH, Day - 1);
        minDate.set(Calendar.MONTH, Month);
        minDate.set(Calendar.YEAR, Year);


        mDojBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                datePickerDialog = DatePickerDialog.newInstance(TrainStatus.this, Year, Month, Day);
                datePickerDialog.setThemeDark(false);
                datePickerDialog.showYearPickerFirst(false);
                datePickerDialog.setAccentColor(Color.parseColor("#009688"));
                datePickerDialog.setTitle("Select Date");
                datePickerDialog.setMinDate(minDate);
                datePickerDialog.setMaxDate(maxDate);

                datePickerDialog.show(getFragmentManager(), "DatePickerDialog");

            }
        });

@Override
    public void onDateSet(DatePickerDialog view, int Year, int Month, int Day) {
        dateSelected = String.valueOf(Year)+String.valueOf(Month)+String.valueOf(Day);

    }

任何帮助都是appreciated.Thanks预先提供的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-16 11:32:41

代码语言:javascript
复制
 You should add month +1. because here month starts from zero(0).

dateSelected = String.valueOf(Year)+String.valueOf(Month +1)+String.valueOf(Day);


Or

   final Calendar calendar = Calendar.getInstance();
            int yy = calendar.get(Calendar.YEAR);
            int mm = calendar.get(Calendar.MONTH);
            int dd = calendar.get(Calendar.DAY_OF_MONTH);

            dialog = DatePickerDialog.newInstance(new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePickerDialog view, int year, int monthOfYear, int dayOfMonth) {
                    month = monthOfYear;
                    day = dayOfMonth;
                    TextView tv = (TextView) v1.findViewById(R.id.txtDate);
                    tv.setText(new StringBuilder().append(day).append("-")
                            .append((month + 1)).append("-").append(year));
                }
            }, yy, mm, dd);

            dialog.setMinDate(calendar);
票数 0
EN

Stack Overflow用户

发布于 2017-05-16 11:34:46

代码语言:javascript
复制
https://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html

检查官方文档中的日历类,月份从0开始。这意味着0=一月和11=december。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44000237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档