https://kotlinlang.org logo
Title
m

Mateusz Krawczuk

10/22/2020, 10:46 AM
Hi! I'm migrating some logic of my application to multiplatform using kotlinx-datetime, but I have question how can I get first day of the month to compare with other value? This is old kotlin code:
val init = myDeviceModel.initTimestamp * 1000
            var date = LocalDate().withDayOfMonth(1).toDate()
            if (init > date.time) {
                date = Date(init)
            }
Is it better way than implement this like that:
val init: Instant = Instant.fromEpochSeconds(myDeviceModel.initTimestamp)
            val initDate: LocalDate = init.toLocalDateTime(TimeZone.UTC).date
            val now: Instant = Clock.System.now()
            val today: LocalDate = now.toLocalDateTime(TimeZone.UTC).date
            val beginOfTheMonth: LocalDate = LocalDate(today.year,today.month,1)
            var periodDate: LocalDate
            if(init > now) {
                periodDate = initDate
            }
            else {
                periodDate = beginOfTheMonth
            }
            consumption_time_period!!.text = getString(
                R.string.this_month_usage_total,
                periodDate.toString(),
                today.toString()
            )