|
|
|
@ -10,13 +10,13 @@ import java.time.ZoneId
|
|
|
|
import java.time.temporal.ChronoUnit
|
|
|
|
import java.time.temporal.ChronoUnit
|
|
|
|
import java.util.concurrent.TimeUnit
|
|
|
|
import java.util.concurrent.TimeUnit
|
|
|
|
|
|
|
|
|
|
|
|
fun calculateTimeAgo(instant: Instant, showMonths: Boolean = false): DateTimeAgo {
|
|
|
|
fun calculateTimeAgo(instant: Instant, showMonths: Boolean = false): DateTimeAgo? {
|
|
|
|
// TODO: Use Java 9's LocalDate.ofInstant().
|
|
|
|
|
|
|
|
val localDate = LocalDateTime.ofInstant(instant, ZoneId.systemDefault()).toLocalDate()
|
|
|
|
val localDate = LocalDateTime.ofInstant(instant, ZoneId.systemDefault()).toLocalDate()
|
|
|
|
val now = LocalDate.now()
|
|
|
|
val now = LocalDate.now()
|
|
|
|
val diffDays = localDate.until(now, ChronoUnit.DAYS)
|
|
|
|
val diffDays = localDate.until(now, ChronoUnit.DAYS)
|
|
|
|
|
|
|
|
|
|
|
|
return when {
|
|
|
|
return when {
|
|
|
|
|
|
|
|
diffDays < 0 -> null // in future, probably a bug, not supported
|
|
|
|
diffDays == 0L -> {
|
|
|
|
diffDays == 0L -> {
|
|
|
|
if (instant.until(Instant.now(), ChronoUnit.MINUTES) < 3) DateTimeAgo.JustNow
|
|
|
|
if (instant.until(Instant.now(), ChronoUnit.MINUTES) < 3) DateTimeAgo.JustNow
|
|
|
|
else DateTimeAgo.Today
|
|
|
|
else DateTimeAgo.Today
|
|
|
|
|