Kotlin活动倒计时

要做一个距离活动开始还有xx日xx时xx分的需求,然后写了个小demo

直接上代码:

val MILLISECOND: Long = 1

val SECOND = MILLISECOND * 1000

val MINUTE = SECOND * 60

val HOURS = MINUTE * 60

val DAY = HOURS * 24

//活动开始时间

var inputMessage = “2023-02-06 15:18:21”

//转换成date

var inputDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss",Locale.CHINA).parse(inputMessage)

//当前时间

val formatToDate = formatToDate(System.currentTimeMillis())

val formatDateDifference =

formatDateDifference(inputDateFormat.time - formatToDate.time, "", "")

tvShow!!.text = formatDateDifference

/**

* 格式化时间差

*

* @param timestamp

* @param postfix 返回字符前缀

* @param postfix 返回字符后缀

*/

fun formatDateDifference(timestamp: Long, prefix: String, postfix: String): String {

val day = timestamp / DAY

val hour = (timestamp - DAY * day) / HOURS

val minute = (timestamp - DAY * day - HOURS * hour) / MINUTE

val second = (timestamp - DAY * day - HOURS * hour - MINUTE * minute) / SECOND

// return when {

// day > 0 -> String.format("$prefix%s天%s时%s分%s秒$postfix", day, hour, minute, second)

// hour > 0 -> String.format("$prefix%s时%s分%s秒$postfix", hour, minute, second)

// minute > 0 -> String.format("$prefix%s分%s秒$postfix", minute, second)

// else -> String.format("$prefix%s秒$postfix", second)

// }

return when {

day > 0 -> String.format("$prefix%s天%s时%s分$postfix", day, hour, minute)

hour > 0 -> String.format("$prefix%s时%s分$postfix", hour, minute,second)

minute > 0 -> String.format("$prefix%s分%s秒$postfix", minute,second)

else -> String.format("$prefix%s秒$postfix",second)

}

}

/**

* 默认为24小时制

*

* @param l

* @return

*/

fun formatToDate(l: Long): Date = formatToDate(l, "yyyy-MM-dd HH:mm:ss")

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值