简体   繁体   中英

How to calculate the exact days in Age Calculator between the date entered & the current date?

val theDate=sdf.parse(selectedDate)

            theDate?.let {

                val selectedDateInMin=theDate.time / 60000
                val selectedDateInYear=(theDate.time/ 31536000000)
                val selectedDateInMonth=(theDate.time)/2629746000
                val selectedDateInDay=(theDate.time)/86400000

                val currentDate=sdf.parse(sdf.format(System.currentTimeMillis()))
                currentDate?.let {

                    val currentDateInMin=currentDate.time/60000
                    val currentDateInYear=(currentDate.time/ 31536000000)
                    val currentDateInMonth=(currentDate.time)/2629746000
                    val currentDateInDay=(currentDate.time)/86400000

                    val differenceInMin = currentDateInMin-selectedDateInMin
                    val differenceInYear=currentDateInYear-selectedDateInYear-1

                    val leap_days=(differenceInYear*(0.24)).toInt()

                    val differenceInMonth=currentDateInMonth-selectedDateInMonth-(differenceInYear*12)

                    val differenceInDay=currentDateInDay-selectedDateInDay-(differenceInYear*365)-(differenceInMonth*31)-leap_days

When I am calculating difference in Days then I have to subtract the number of days included in the difference of month. Then how will I calculate whether the month has 28 days or 31 days or 30 days and what no. I have to multiply with the differenceInMonth? How will I genearlize the formula of getting exact number of days in certain period of months for eg How many days in 2 months or 4 months?

import java.time.Duration

val sdf = SimpleDateFormat("yyyy-MM-dd hh:mm:ss")

val theDate= sdf.parse("2022-03-14 17:09:18")
val now = sdf.parse(sdf.format(System.currentTimeMillis()))

val duration = Duration.between(now.toInstant(), theDate.toInstant()).toDays()

println("$duration days")

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM