美文网首页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 - 年月日时分秒...的唯一性判断

    本来想随便写个判断当日方法而已,谁知道越写越多,后来干脆顺便封装了年月日时分秒的唯一性判断,估计大家在项目有时候也...

  • 系统时间相关-date

    1.查看系统时间 年月日 完整显示年月日 完整显示年月日 时分秒 时分秒 星期 显示过去或未来的时间信息: 同步系...

  • Day19-课堂笔记-time

    主要包含处理年月日时分秒对应的时间(着重时分秒)import time专门处理年月日import datetime...

  • datetime:时间戳转换

    将时间戳转换为年月日时分秒格式: 将年月日时分秒格式转换为时间戳:

  • js业务常用函数

    js来控制 字符串的长度! 去掉年月日时分秒 里的 时分秒! 根据时间差值 输出 倒计时的格式化 更加细则的判断数...

  • day19

    一、time模块 主要包含处理年月日时分秒对应的事件(着重时分秒)import time 专门处理年月日impo...

  • day19-time模块

    一、time模块 主要包含处理年月日时分秒对应的事件(着重时分秒)import time 专门处理年月日impo...

  • day19-time模块

    1. 时间模块 主要包含处理年月日时分秒对应的时间(着重时分秒)import time 专门处理年月日import...

  • day19-time模块

    01-时间模块 主要包含处理年月日时分秒对应的时间(着重时分秒)import time 专门处理年月日import...

  • ios小知识点整理第四期(持续更新)

    判断给定的时间是否是今天,如果是今天,则显示分和秒,如果是今年,则显示月日时分秒,否则显示年月日时分秒 计算文字的...

网友评论

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

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