美文网首页固予iOS点滴iOS收藏
iOS开发之时间日期比较

iOS开发之时间日期比较

作者: 朱晓晓的技术博客 | 来源:发表于2015-12-10 15:22 被阅读5138次

    APP会弹出评分窗口,又或者弹出更新版本窗口,频率几乎都会是固定的,这里主要是用了APP在上次打开日期和当前打开的时间差,进而触发事件.上代码.

    Paste_Image.png
    #pragma mark - 版本更新提示频率事件
    
    -(void)getCurrentTime{
    
    //输出的时间是格林威治标准时间本初子午线穿过哪里
    
    NSDate*currentDate = [NSDatedate];
    
    NSLog(@"currentDate%@",currentDate);
    
    //读取上次打开时间
    
    NSDate*userLastOpenDate =[[NSUserDefaultsstandardUserDefaults]objectForKey:@"AppTimeLastOpenDate"];
    
    NSLog(@"userLastOpenDate%@",userLastOpenDate);
    
    //日历
    
    NSCalendar*calendar = [NSCalendarcurrentCalendar];
    
    //计算两个日期的差值
    
    NSDateComponents*cmps= [calendarcomponents:NSCalendarUnitDayfromDate:userLastOpenDatetoDate:currentDateoptions:NSCalendarMatchStrictly];
    
    //定义isAPPUpdateTime全局变量,至于如何定义,请参阅以往文章
    
    AppDelegate*appdelegate = (AppDelegate*)[UIApplicationsharedApplication].delegate;
    
    NSLog(@"(long)cmps.second%ld",(long)cmps.second);
    
    if(cmps.date>0) {
    
    appdelegate.isAPPUpdateTime=YES;
    
    //版本更新
    
    [selfAppVersionCheckRemind];
    
    NSLog(@"时间分钟差值--->%@",cmps);
    
    }else
    
    {
    
    appdelegate.isAPPUpdateTime=NO;
    
    }
    
    NSLog(@"---->%hhd",appdelegate.isAPPUpdateTime);
    
    //把当前打开的时间保存起来(如果设置数据之后没有同步,会在将来某一时间点自动将数据保存到Preferences文件夹下面)
    
    [[NSUserDefaultsstandardUserDefaults]setObject:currentDateforKey:@"AppTimeLastOpenDate"];
    
    //强制让数据立刻保存
    
    [[NSUserDefaultsstandardUserDefaults]synchronize];
    
    }
    

    相关文章

      网友评论

        本文标题:iOS开发之时间日期比较

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