首页 > 解决方案 > 如何在日历数据类型中从现在开始一个月?

问题描述

我想像这样在我的日期选择器对话框中设置最大日期 在此处输入图像描述

如您所见,它需要Calendar输入的数据类型。

我希望最大日期总是从当前时间开始一个月。我试过这样

        val now = Calendar.getInstance()
        val currentYear: Int = now.get(Calendar.YEAR)
        val currentMonth: Int = now.get(Calendar.MONTH)
        val currentDay: Int = now.get(Calendar.DAY_OF_MONTH)

        val oneMonthFromNow = now.add(Calendar.MONTH,1)

oneMonthFromNow类型是 in unit,而不是Calendar数据类型。那么如何从当前日期时间动态添加一个月?

java或者kotlin都可以

标签: androidandroid-calendar

解决方案


我要说的第一件事是不要使用Calendarclass,而是使用LocalDateTime. 你会得到很多关于如何使用这个类以及为什么要使用的文章。


即使您想使用 Calendar 类,那么我会说如果有任何东西不起作用或没有返回任何东西,您应该查看该类的实现。一定有办法解决你的问题。这种方式将增加您的知识以及调试技能。

所以来到你的解决方案,你需要像这样使用

    val now = Calendar.getInstance()
    // val currentYear: Int = now.get(Calendar.YEAR)
    // val currentMonth: Int = now.get(Calendar.MONTH)
    // val currentDay: Int = now.get(Calendar.DAY_OF_MONTH)

    now.add(Calendar.MONTH,1) // Added one month 
    val oneMonthFromNow = now
    // Or 
    // val oneMonthFromNow = now.clone()
    // oneMonthFromNow.add(Calendar.MONTH,1)

推荐阅读