如何将月份或日期添加到当前/选定的日期Kotlin



我创建了一个日期选择器,用户可以从中选择日期,在另一个文本视图中,我想显示一个月后的确切日期。(例如,用户选择2月25日,视图将显示3月25日(

val simpleDateFormat = SimpleDateFormat("dd/MM/yyyy", Locale.getDefault())
val getDate :Calendar = Calendar.getInstance()
val datepicker = DatePickerDialog(this,android.R.style.Theme_Holo_Light_Dialog_MinWidth,DatePickerDialog.OnDateSetListener
{ datePicker, i, i2, i3 ->
val selectDate :Calendar = Calendar.getInstance()
selectDate.set(Calendar.YEAR,i)
selectDate.set(Calendar.MONTH,i2)
selectDate.set(Calendar.DAY_OF_MONTH,i3)
val date :String = simpleDateFormat.format(selectDate.time)
sulusText.setText(date)

},getDate.get(Calendar.YEAR),getDate.get(Calendar.MONTH),getDate.get(Calendar.DAY_OF_MONTH))
datepicker.show()
}
}

所以在这里,用户可以用sulustext选择日期,在另一个视图中,我想显示一个月后的日期。

LocalDate会容易得多。

您可以基于日期选择器创建LocalDate,然后使用内置方法添加一个月的

import java.time.LocalDate
val today = LocalDate.now()
data class DatePicker(val day: Int, val month: Int)
val datePicker = DatePicker(15, 2)
val baseMonth = LocalDate.of(today.year, datePicker.month, datePicker.day)
// add one month
val nextMonth = LocalDate.from(baseMonth).plusMonths(1)

注意:示例中的数据类仅用于演示目的。您可以将其替换为实际的日期选择器实现。

我已经编写了一个函数,它获取当前的月份日期(整数(,并返回按所需值递增的新的月份日期。对我来说是一周。如果你有问题请问我。

@SuppressLint("SimpleDateFormat")
private fun getNewDayOfMonth(day: Int): String {
val calendar = Calendar.getInstance()
var dayOfMonth = day.toString()
val simpleDateFormat = SimpleDateFormat("dd")
calendar.time = simpleDateFormat.parse(dayOfMonth) as Date
calendar.add(Calendar.DATE, 7)
dayOfMonth = simpleDateFormat.format(calendar.time)
return dayOfMonth
}

最新更新