我的SWIFT时间处理

作者: 代号027 | 来源:发表于2015-10-06 11:04 被阅读212次
  • 使用IOS中的时间格式化工具(DateFormatter)可以很方便的对String和NSDate进行转换
  • 使用NSDate的timeIntervalSince1970可以得到一个1970年来的时间戳
  • 可以对时间戳进行算术运算

下面的代码,通过格式化String到NSDate,而后得到标准时间戳,之后对时间戳进行运算

  1. 第一个方法通过开始时间和结束时间 得到一个时间段 最后根据当前时间计算出来当前时间和整个时间段的比值(rate)
  2. 第二个方法根据结束时间得到一个时间戳 进行算术运算后 转换成天数、小时和分钟

下面这段代码返回的数据将会被用作控制页面的prigress和label,最后效果如下:

import Foundation

class DateTimeUtil{

    func getWorkRate(startTime: String, endTime: String) -> Float{
        let dateFormatetr = NSDateFormatter()
        dateFormatetr.dateFormat = "yyyy-MM-dd HH:mm:ss"
        let start = dateFormatetr.dateFromString(startTime)?.timeIntervalSince1970
        let end = dateFormatetr.dateFromString(endTime)?.timeIntervalSince1970
        let now = NSDate().timeIntervalSince1970
        var rate = (now - start!) / (end! - start!)
        rate = floor(rate*1000)/1000
        print(rate)
        return Float(rate)
    }
    
    func timeToNature(endTime: String) -> String{
        let dateFormatetr = NSDateFormatter()
        dateFormatetr.dateFormat = "yyyy-MM-dd HH:mm:ss"
        let end = dateFormatetr.dateFromString(endTime)?.timeIntervalSince1970
        let now = NSDate().timeIntervalSince1970
        let timestamp = end! - now
        if timestamp < 0{
            return "已经完结"
        }
        let nature = timestamp / 3600
        if nature > 24{
            return ("\(Int(nature/24))天后完结")
        }else if nature > 1{
            return("\(Int(nature))小时后完结")
        }else if nature < 1 {
            return("\(Int(nature*60))分钟后完结")
        }else{
            return ""
        }
    }
    
}

相关文章

  • 我的SWIFT时间处理

    使用IOS中的时间格式化工具(DateFormatter)可以很方便的对String和NSDate进行转换 使用N...

  • Swift学习_时间处理

    时间处理类(给Date添加一个Extension) 方法调用 附录 查看完整专栏《Swift学习》 有问题欢迎指正...

  • Swift 时间处理extension

    很多项目中都需要显示时间,比如聊天界面消息日期、朋友圈的说说的日期等。本文提供一个Swift下的关于时间处理的ex...

  • Swift 时间细节处理

    时间字符串细节处理

  • Swift备忘

    Swift初体验 Swift Tips Swift三种不同的【异常处理方式】 Swift 3.0 private变...

  • Swift: SPM包管理器

    SPM:Swift Package Manager(swift包管理器),管理Swift代码分发的工具,用于处理模...

  • swift时间的一个处理

    如果时间比现在小于60秒,则显示刚刚 如果时间比现在小于60分钟,则显示多少分钟前 如果时间比现在小于24小时,则...

  • 异常捕获

    Swift异常处理的历史由来 Swift1.0版本 Cocoa Touch 的 NSError ,Swift并没有...

  • Swift中的错误处理

    Swift中的错误处理 Swift provides first-class support for throwi...

  • Swift 一些时间处理

    1. 根据一个时间字符串转换任意样式 案列: 2. 获取星期几 案列 3. 获取生肖年 先定义一组生肖: 案列 4...

网友评论

    本文标题:我的SWIFT时间处理

    本文链接:https://www.haomeiwen.com/subject/jfagcttx.html