0

i have a project that should bring end date after the start date on android datepicker. (user will chose any date on start date and when user click end date what ever user choose end date should be one day after start date)

for this purpose i have a Kotlin code as in below;

private fun showDatePickerDialog(type: Int) {
    calendar = Calendar.getInstance()
    year = calendar!!.get(Calendar.YEAR)
    month = calendar!!.get(Calendar.MONTH)
    dayOfMonth = calendar!!.get(Calendar.DAY_OF_MONTH)
    datePickerDialog = DatePickerDialog(
        requireContext(), R.style.MyDatePickerStyle,
        { datePicker, year, month, day ->
            if (type == 0){
                var month = month + 1
                var startMonthConverted = ""+month
                var startDayConverted = ""+day
                if(month<10){
                    startMonthConverted = "0$startMonthConverted"
                }
                if(day<10){
                    startDayConverted= "0$startDayConverted"
                }
                binding.txtStartDate.setText("$year-$startMonthConverted-$startDayConverted")
            } else {
                var month = month + 1
                var monthConverted = ""+month
                var dayConverted = ""+day

                if(month<10){
                    monthConverted = "0$monthConverted";
                }
                if(day<10){
                    dayConverted = "0$dayConverted"
                }
                binding.txtEndDate.setText("$year-$monthConverted-$dayConverted")
            }

        },
        year,
        month,
        dayOfMonth
    )
    if (type == 0) {
       val startDay = Calendar.getInstance()
        startDay.add(Calendar.DAY_OF_YEAR, 2);
       datePickerDialog!!.datePicker.minDate = startDay.timeInMillis
    } else {
        val endDay = Calendar.getInstance()
        endDay.add(Calendar.DATE, 2)
       // datePickerDialog!!.datePicker.minDate = endDay.timeInMillis
        datePickerDialog!!.getDatePicker().setMinDate(endDay.getTimeInMillis());
    }
    val df: DateFormat = SimpleDateFormat("'T'HH:mm:ss.SSS")
    currentTime = df.format(Calendar.getInstance().timeInMillis)
    Log.d("TAG", "currentTime:$currentTime ")
    datePickerDialog!!.show()
    //set OK/Cancel buttons color
    //set OK/Cancel buttons color
    datePickerDialog!!.getButton(Dialog.BUTTON_POSITIVE)
        .setTextColor(android.graphics.Color.BLACK)
    datePickerDialog!!.getButton(Dialog.BUTTON_NEGATIVE)
        .setTextColor(android.graphics.Color.BLACK)
}

0 Answers0