• 第二篇、常用的分类文件


    1.NSDate(获取时间格式)

    import UIKit
    
    extension NSDate
    {
        class func dateWithStr(time: String) ->NSDate {
            
            // 1.将服务器返回给我们的时间字符串转换为NSDate
            // 1.1.创建formatter
            let formatter = NSDateFormatter()
            // 1.2.设置时间的格式
            formatter.dateFormat = "EEE MMM d HH:mm:ss Z yyyy"
            // 1.3设置时间的区域(真机必须设置, 否则可能不能转换成功)
            formatter.locale = NSLocale(localeIdentifier: "en")
            // 1.4转换字符串, 转换好的时间是去除时区的时间
            let createdDate = formatter.dateFromString(time)!
    
            return createdDate
        }
        
        /**
        刚刚(一分钟内)
        X分钟前(一小时内)
        X小时前(当天)
        昨天 HH:mm(昨天)
        MM-dd HH:mm(一年内)
        yyyy-MM-dd HH:mm(更早期)
        */
        var descDate:String{
            
            let calendar = NSCalendar.currentCalendar()
            
            // 1.判断是否是今天
            if calendar.isDateInToday(self)
            {
                // 1.0获取当前时间和系统时间之间的差距(秒数)
                let since = Int(NSDate().timeIntervalSinceDate(self))
                // 1.1是否是刚刚
                if since < 60
                {
                    return "刚刚"
                }
                // 1.2多少分钟以前
                if since < 60 * 60
                {
                    return "(since/60)分钟前"
                }
                
                // 1.3多少小时以前
                return "(since / (60 * 60))小时前"
            }
            
            // 2.判断是否是昨天
            var formatterStr = "HH:mm"
            if calendar.isDateInYesterday(self)
            {
                // 昨天: HH:mm
                formatterStr =  "昨天:" +  formatterStr
            }else
            {
                // 3.处理一年以内
                formatterStr = "MM-dd " + formatterStr
                
                // 4.处理更早时间
                let comps = calendar.components(NSCalendarUnit.Year, fromDate: self, toDate: NSDate(), options: NSCalendarOptions(rawValue: 0))
                if comps.year >= 1
                {
                    formatterStr = "yyyy-" + formatterStr
                }
            }
            
            // 5.按照指定的格式将时间转换为字符串
            // 5.1.创建formatter
            let formatter = NSDateFormatter()
            // 5.2.设置时间的格式
            formatter.dateFormat = formatterStr
            // 5.3设置时间的区域(真机必须设置, 否则可能不能转换成功)
            formatter.locale = NSLocale(localeIdentifier: "en")
            // 5.4格式化
            
            return formatter.stringFromDate(self)
        }
    }

    2.NSString(获取文件目录)

    import UIKit
    
    extension String{
        /**
        将当前字符串拼接到cache目录后面
        */
        func cacheDir() -> String{
            let path = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomainMask.UserDomainMask, true).last!  as NSString
            return path.stringByAppendingPathComponent((self as NSString).lastPathComponent)
        }
        /**
        将当前字符串拼接到doc目录后面
        */
        func docDir() -> String
        {
            let path = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true).last!  as NSString
            return path.stringByAppendingPathComponent((self as NSString).lastPathComponent)
        }
        /**
        将当前字符串拼接到tmp目录后面
        */
        func tmpDir() -> String
        {
            let path = NSTemporaryDirectory() as NSString
            return path.stringByAppendingPathComponent((self as NSString).lastPathComponent)
        }
    }
  • 相关阅读:
    ACdream 1114(莫比乌斯反演)
    ACdream 1148(莫比乌斯反演+分块)
    bzoj2301(莫比乌斯反演+分块)
    hdu1695(莫比乌斯反演)
    hdu4908(中位数)
    bzoj1497(最小割)
    hdu3605(最大流+状态压缩)
    【Leetcode】Add Two Numbers
    【Leetcode】Add Binary
    【Leetcode】Single Number II
  • 原文地址:https://www.cnblogs.com/HJQ2016/p/5792802.html
Copyright © 2020-2023  润新知