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)
.
我有一个日历视图,这是我的代码
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)
.