zoukankan      html  css  js  c++  java
  • NSDate 工具

    #import "NSDate+XMGExtension.h"
    
    @implementation NSDate (XMGExtension)
    /**
     *  是否为今天
     */
    - (BOOL)isToday
    {
        NSCalendar *calendar = [NSCalendar currentCalendar];
        
        NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
        
        NSDateComponents *selfCmps = [calendar components:unit fromDate:self];
        NSDateComponents *nowCmps = [calendar components:unit fromDate:[NSDate date]];
        
        return selfCmps.year == nowCmps.year
        && selfCmps.month == nowCmps.month
        && selfCmps.day == nowCmps.day;
    }
    
    /**
     *  是否为昨天
     */
    - (BOOL)isYesterday
    {
        // 2015-04-01 10:10:10 -> 2015-04-01 00:00:00
        // 2015-03-31 23:50:40 -> 2015-03-31 00:00:00
        
        // 生成只有年月日的日期对象
        NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
        fmt.dateFormat = @"yyyy-MM-dd";
        
        NSString *selfString = [fmt stringFromDate:self];
        NSDate *selfDate = [fmt dateFromString:selfString];
        
        NSString *nowString = [fmt stringFromDate:[NSDate date]];
        NSDate *nowDate = [fmt dateFromString:nowString];
        
        // 比较差距
        NSCalendar *calendar = [NSCalendar currentCalendar];
        NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
        NSDateComponents *cmps = [calendar components:unit fromDate:selfDate toDate:nowDate options:0];
        
        return cmps.year == 0
        && cmps.month == 0
        && cmps.day == 1;
    }
    
    /**
     *  是否为明天
     */
    - (BOOL)isTomorrow
    {
        // 生成只有年月日的日期对象
        NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
        fmt.dateFormat = @"yyyy-MM-dd";
        
        NSString *selfString = [fmt stringFromDate:self];
        NSDate *selfDate = [fmt dateFromString:selfString];
        
        NSString *nowString = [fmt stringFromDate:[NSDate date]];
        NSDate *nowDate = [fmt dateFromString:nowString];
        
        // 比较差距
        NSCalendar *calendar = [NSCalendar currentCalendar];
        NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
        NSDateComponents *cmps = [calendar components:unit fromDate:selfDate toDate:nowDate options:0];
        
        return cmps.year == 0
        && cmps.month == 0
        && cmps.day == -1;
    }
    
    /**
     *  是否为今年
     */
    - (BOOL)isThisYear
    {
        NSCalendar *calendar = [NSCalendar currentCalendar];
        NSInteger selfYear = [calendar component:NSCalendarUnitYear fromDate:self];
        NSInteger nowYear = [calendar component:NSCalendarUnitYear fromDate:[NSDate date]];
        return selfYear == nowYear;
    }
    
    @end
  • 相关阅读:
    如何选择一家公司?
    教你一招最屌的阅读开源项目的姿势
    我是如何管理我的团队的?
    我面试到底问什么?
    如何正确使用开源项目?
    如何选择开源项目?
    html表格中的tr td th用法
    如何用 Java 实现 Web 应用中的定时任务?
    java定时任务实现的几种方式
    Java 定时任务 & 任务调度
  • 原文地址:https://www.cnblogs.com/developer-ios/p/4917855.html
Copyright © 2011-2022 走看看