fun dateWork() {
try {
// Create and show the picker
val builder = MaterialDatePicker.Builder.dateRangePicker()
val constraintsBuilder = CalendarConstraints.Builder()
constraintsBuilder.setValidator(
DateValidatorPointBackward.now() // Only past dates
)
builder.setTitleText("Select Date Range")
builder.setCalendarConstraints(constraintsBuilder.build())
builder.setSelection(
Pair(
MaterialDatePicker.thisMonthInUtcMilliseconds(),
MaterialDatePicker.todayInUtcMilliseconds()
)
)
val picker = builder.build()
picker.addOnPositiveButtonClickListener { selection ->
val startDate = selection.first
val endDate = selection.second
// Convert timestamps (Long) to readable dates
val sdf =
java.text.SimpleDateFormat("dd/MM/yyyy", java.util.Locale.getDefault())
val start = sdf.format(java.util.Date(startDate))
val end = sdf.format(java.util.Date(endDate))
// Example: update UI
binding.orderDate.text = "Selected: $start - $end"
}
binding.orderDate.setOnClickListener {
picker.show(supportFragmentManager, picker.toString())
}
} catch (e: Exception) {
e.printStackTrace()
}
}
import androidx.core.util.Pair
import com.google.android.material.datepicker.MaterialDatePicker