How to convert days into human-readable years, months and days in Kotlin

2 Answers

0 votes
import java.time.LocalDate
import java.time.Period

data class YMD(val years: Int, val months: Int, val days: Int)

fun splitDays(totalDays: Int): YMD {
    val start = LocalDate.of(1970, 1, 1)
    val end = start.plusDays(totalDays.toLong())

    val p = Period.between(start, end)

    return YMD(p.years, p.months, p.days)
}


fun main() {
    val r = splitDays(452)
    
    println("${r.years} years, ${r.months} months, ${r.days} days")
}


/*
run:

1 years, 2 months, 28 days

*/

 



answered Jan 1 by avibootz
0 votes
data class YMD(val years: Int, val months: Int, val days: Int)

fun splitDays(total: Int): YMD {
    var days = total

    val years = days / 365
    days %= 365

    val months = days / 30
    days %= 30

    return YMD(years, months, days)
}

fun main() {
    val r = splitDays(452)
    
    println("${r.years} years, ${r.months} months, ${r.days} days")
}


/*
run:

1 years, 2 months, 27 days

*/

 



answered Jan 1 by avibootz

Related questions

...