android倒计时时间戳,计算两个时间戳之差,以及时间倒计时

这篇博客详细介绍了如何在项目中实现订单支付的倒计时功能。通过获取订单提交时间戳并结合后台设定的24小时付款周期,计算出当前时间与订单超时时间的间距,并根据此间距启动或停止计时器。文章还展示了如何根据时间间隔生成倒计时显示的字符串,例如‘X天X小时X分钟X秒’,并给出了相关代码实现。
摘要由CSDN通过智能技术生成

项目中提交订单之后,会有付款时间倒计时提醒,不过相关的接口中只提供了订单提交时间戳,没有订单付款超时时间戳,后台规定,订单付款周期为24小时,根据这个需求来进行时间倒计时。

调用以下的方法得出当前时间与超时时间的间距:

//time:周期时间   单位为秒数      timeStamp:订单提交时间戳+ (NSTimeInterval)timerInterval:(NSTimeInterval)interval timeStamp:(NSString *)timeStamp{

//订单下单时间

NSDate *beginDate = [NSDate dateWithTimeIntervalSince1970:[timeStamp intValue]];

//订单超时时间

NSDate *endDate = [NSDate dateWithTimeInterval:interval sinceDate:beginDate];

//当前时间

NSDate *nowDate = [NSDate date];

NSTimeInterval nowInterval = [nowDate timeIntervalSince1970];

NSTimeInterval endInterval = [endDate timeIntervalSince1970];

//得出当前时间与超时时间的间距

NSTimeInterval value = endInterval - nowInterval;

return value;

}

再进行时间的判断,当value > 0 时,计时器启动倒计时,小于等于0时,订单已超时,计时器停止。

当 value > 0时,计时器启动,调用以下方法:

+ (NSString *)countdownTime:(NSTimeInterval)interval{

NSString *timeStr;

int second = (int)interval % 60;//秒

int minute = (int)interval / 60 % 60;

int hours = (int)interval / 3600 % 60;

int day = (int)interval / (24 *3600) % 60;

if (day != 0) {

timeStr = [NSString stringWithFormat:@"%d天%d:%d:%d",day,hours,minute,second];

}else if (day == 0 && hours != 0) {

timeStr = [NSString stringWithFormat:@"%d:%d:%d",hours,minute,second];

}else if (day == 0 && hours == 0 && minute != 0) {

timeStr = [NSString stringWithFormat:@"%d:%d",minute,second];

}else{

timeStr = [NSString stringWithFormat:@"%d",second];

}

return timeStr;

}

计时器不断给控件刷新数据,NSTimer我就不赘述了,效果如下:

5bc719c5b1f5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值