美文网首页Swift开发swiftSkyCafe
Swift - 年月日时分秒...的唯一性判断

Swift - 年月日时分秒...的唯一性判断

作者: 小黑Swift | 来源:发表于2016-08-25 00:54 被阅读179次
    本来想随便写个判断当日方法而已,谁知道越写越多,后来干脆顺便封装了年月日时分秒的唯一性判断,估计大家在项目有时候也会用到,比较判断APP是否今天已经启动,决定提示用户什么或者弹出广告之类。
    实现原理也比较简单,根据系统NSUserDefaults单例来存取时间数据来判断
    大家可以根据这个来扩展下,判断距离上次使用时长或者实现其他功能等。
    //
    //  Unique.swift
    //  逗牛
    //
    //  Created by mac on 16/8/24.
    //  Copyright © 2016年 mac. All rights reserved.
    //
    
    import Foundation
        
    enum Unique {
        case year
        case month
        case day
        case hour
        case min
        case seconds
        
       var isOnly: Bool {
            let defults = NSUserDefaults.standardUserDefaults()
            guard let currUnique = defults.objectForKey(String(self)) as? String where currUnique == self.onlySnail else {
                //不存在则创建 -> 存在则判断 是否为今天 -> 否则 记录今天
                defults.setObject(self.onlySnail, forKey: String(self))
                defults.synchronize()
                return false
            }
            return true
        }
        
        private var onlySnail: String {
            let now = NSDate() //获取当前时间
            let dformatter = NSDateFormatter() //创建一个日期格式器
            switch self {
            case .year:
                dformatter.dateFormat = "yyyy年"
            case .month:
                dformatter.dateFormat = "yyyy年MM月"
            case day:
                dformatter.dateFormat = "yyyy年MM月dd日"
            case hour:
                dformatter.dateFormat = "yyyy年MM月dd日 HH"
            case min:
                dformatter.dateFormat = "yyyy年MM月dd日 HH:mm"
            case seconds:
                dformatter.dateFormat = "yyyy年MM月dd日 HH:mm:ss"
            }
            return dformatter.stringFromDate(now)
        }
    }
    

    使用:在需要使用的地方直接判断即可

            if Unique.year.isOnly == true {
                print("别急,今年很快就过去了")
            }
            
            if Unique.month.isOnly == true {
                print("这个月,你已经不能在过去了")
            }
            
            if Unique.day.isOnly == true {
                print("今天已经领取了(⊙o⊙)哦")
            }
            
            if Unique.hour.isOnly == true {
                print("这小时还没有过去噢")
            }
            
            if Unique.min.isOnly == true {
                print("这分钟很快就过去了,亲")
            }
            
            if Unique.seconds.isOnly == true {
                print("秒杀你的节奏")
            }

    相关文章

      网友评论

        本文标题:Swift - 年月日时分秒...的唯一性判断

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