You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中如何为当前或选定日期添加指定月份或天数

实现方案

在DatePickerDialog的日期选中回调里,拿到选中日期的selectDate实例后,直接调用add方法给月份字段+1,格式化后赋值给你要展示延后日期的TextView即可。

修改后的完整代码如下:

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, year, month, day ->
        // 初始化选中日期实例
        val selectDate :Calendar = Calendar.getInstance()
        selectDate.set(Calendar.YEAR, year)
        selectDate.set(Calendar.MONTH, month)
        selectDate.set(Calendar.DAY_OF_MONTH, day)
        // 展示原始选中日期
        val date :String = simpleDateFormat.format(selectDate.time)
        sulusText.setText(date)

        // 计算延后1个月的日期
        selectDate.add(Calendar.MONTH, 1)
        val nextMonthDateStr = simpleDateFormat.format(selectDate.time)
        // 替换为你自己的目标TextView控件名
        targetTextView.setText(nextMonthDateStr)
    },
    getDate.get(Calendar.YEAR),
    getDate.get(Calendar.MONTH),
    getDate.get(Calendar.DAY_OF_MONTH)
)
datepicker.show()
  • 注意:上述代码先格式化了原始选中日期再修改selectDate的值,不需要额外克隆实例;如果需要保留原始选中日期的Calendar实例做其他操作,可以先克隆再修改克隆后的实例。
  • Calendar的add方法会自动处理跨年份、小月/闰月日期溢出的场景:比如选中2024年1月31日,加1个月后会自动调整为2024年2月29日;选中2023年12月10日,加1个月后会自动变成2024年1月10日,符合需求逻辑。

内容的提问来源于stack exchange,提问作者MrKoala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 19:24:05