zoukankan      html  css  js  c++  java
  • ios开发日期的NSDate,NSCalendar分类

    #import <Foundation/Foundation.h>
    
    @interface NSDate (XMGExtension)
    /**  */
    // @property (nonatomic, copy) NSString *name;
    //- (NSString *)name;
    //- (void)setName:(NSString *)name;
    
    /**
     *  是否为今年
     */
    - (BOOL)isThisYear;
    
    /**
     *  是否为今天
     */
    - (BOOL)isToday;
    
    /**
     *  是否为昨天
     */
    - (BOOL)isYesterday;
    
    /**
     *  是否为明天
     */
    - (BOOL)isTomorrow;
    
    @end
    #import "NSDate+XMGExtension.h"
    
    @implementation NSDate (XMGExtension)
    
    - (BOOL)isThisYear
    {
        // 判断self这个日期是否为今年
        NSCalendar *calendar = [NSCalendar calendar];
        
        //
        NSInteger selfYear = [calendar component:NSCalendarUnitYear fromDate:self];
        NSInteger nowYear = [calendar component:NSCalendarUnitYear fromDate:[NSDate date]];
        
        return selfYear == nowYear;
    }
    //- (BOOL)isThisYear
    //{
    //    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
    //    fmt.dateFormat = @"yyyy";
    //    
    //    ////    NSString *selfYear = [fmt stringFromDate:self];
    //    NSString *nowYear = [fmt stringFromDate:[NSDate date]];
    //    
    //    return [selfYear isEqualToString:nowYear];
    //}
    - (BOOL)isToday
    {
        // 判断self这个日期是否为今天
        NSCalendar *calendar = [NSCalendar calendar];
        
        // 获得年月日元素
        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)isToday
    //{
    //    // 判断self这个日期是否为今天
    //    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
    //    fmt.dateFormat = @"yyyyMMdd";
    //
    //    NSString *selfString = [fmt stringFromDate:self];
    //    NSString *nowString = [fmt stringFromDate:[NSDate date]];
    //
    //    return [selfString isEqualToString:nowString];
    //}
    
    - (BOOL)isYesterday
    {
        // 判断self这个日期是否为昨天
        
        // self == 2015-10-31 23:07:08 -> 2015-10-31 00:00:00
        // now  == 2015-11-01 14:39:20 -> 2015-11-01 00:00:00
        
        NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
        fmt.dateFormat = @"yyyyMMdd";
        
        NSString *selfString = [fmt stringFromDate:self]; // 20151031
        NSString *nowString = [fmt stringFromDate:[NSDate date]]; // 20151101
        
        NSDate *selfDate = [fmt dateFromString:selfString]; // 2015-10-31 00:00:00
        NSDate *nowDate = [fmt dateFromString:nowString]; // 2015-11-01 00:00:00
        
        NSCalendar *calendar = [NSCalendar calendar];
        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 = @"yyyyMMdd";
        
        NSString *selfString = [fmt stringFromDate:self]; // 20151031
        NSString *nowString = [fmt stringFromDate:[NSDate date]]; // 20151101
        
        NSDate *selfDate = [fmt dateFromString:selfString]; // 2015-10-31 00:00:00
        NSDate *nowDate = [fmt dateFromString:nowString]; // 2015-11-01 00:00:00
        
        NSCalendar *calendar = [NSCalendar calendar];
        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;
    }
    #import <Foundation/Foundation.h>
    
    @interface NSCalendar (XMGExtension)
    + (instancetype)calendar;
    @end
    #import "NSCalendar+XMGExtension.h"
    
    @implementation  (XMGExtension)
    + (instancetype)calendar
    {
        if ([NSCalendar respondsToSelector:@selector(calendarWithIdentifier:)]) {
            return [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
        } else {
            return [NSCalendar currentCalendar];
        }
    
    }
    @end
  • 相关阅读:
    MYSQL架构和Innodb存储引擎
    MySQL基础
    ConcurrentHashMap
    线程池
    并发包(JUC)之阻塞队列
    并发包(JUC)之Condition、CountDownLatch
    并发包(JUC)之Lock和AQS
    volatile关键字——数据可见性问题
    对象锁——synchronized关键字
    获取ip
  • 原文地址:https://www.cnblogs.com/cqb-learner/p/5774475.html
Copyright © 2011-2022 走看看