LocaleDateTime.dayOfWeek return 我的值错了

LocaleDateTime.dayOfWeek return me wrong value

我有一个日历视图,这是我的代码

binding.calendarView.setOnDateChangeListener(CalendarView.OnDateChangeListener { view, year, month, dayOfMonth ->
            Toast.makeText(applicationContext, "$dayOfMonth/$month/$year", Toast.LENGTH_LONG).show()
            var selectedDate = LocalDateTime.of(year, month, dayOfMonth, 0, 0)
            val weekdayValue = selectedDate.dayOfWeek.value
            val weekdayName = selectedDate.dayOfWeek.name
        })

当我点击星期一时,weekdayValue = 5 和 weekdayName =“星期五”。 当我在星期三点击时,weekdayValue = 7 和 weekdayName = “星期日”。

我的 calendarView 中一周的第一天是 2,所以是星期一。 Toast 告诉我好的价值。

有什么问题?

不幸的是,CalendarView 使用从 0 开始的月份(January 是 0),而 LocalDateTime 使用从 1 开始的月份(January 是 1)。您需要使用 LocalDateTime.of(year, month + 1, dayOfMonth, 0, 0).