ios 日期操作封装

来源:互联网 发布:权志龙水原希子 知乎 编辑:程序博客网 时间:2024/05/28 17:06

/**

 *  获取明天日期

 *

 *  @return NSDate类型

 */

+(NSDate *) dateTomorrow

{

    return [[NSDatedate] initWithTimeIntervalSinceNow:24 *60 * 60 ];

}


/**

 *  获取昨天日期

 *

 *  @return NSDate类型

 */

+(NSDate *) dateYesterday

{

    return [[NSDatedate] initWithTimeIntervalSinceNow: -24 *60 * 60];

}


/**

 *  获取指定天数后的日期

 *

 *  @param days 天数

 *

 *  @return  NSDate类型

 */

+(NSDate *) dateWithDaysFromNow:(NSUInteger) days

{

    return [[NSDatedate] initWithTimeIntervalSinceNow:days *24 * 60 * 60];

}


/**

 *  获取指定天数前的日期

 *

 *  @param days 天数

 *

 *  @return NSDate类型

 */

+(NSDate *) dateWithDaysBeforeNow:(NSInteger) days

{

    return [[NSDatedate] initWithTimeIntervalSinceNow:((-24) *60 * 60 * days)];

}


/**

 *  获取指定小时数后的日期

 *

 *  @param dHours 小时数

 *

 *  @return NSDate类型

 */

+(NSDate *) dateWithHoursFromNow:(NSUInteger) dHours

{

    return [[NSDatedate] initWithTimeIntervalSinceNow:dHours *60 * 60];

}


/**

 *  获取指定小时数前的日期

 *

 *  @param dHours 小时数

 *

 *  @return NSDate类型

 */

+(NSDate *) dateWithHoursBeforeNow:(NSInteger) dHours

{

    return [[NSDatedate] initWithTimeIntervalSinceNow:dHours *60 * 60 * (-1)];

}


/**

 *  获取指定分钟后的日期

 *

 *  @param dMinutes 分钟

 *

 *  @return NSDate类型

 */

+(NSDate *) dateWithMinutesFromNow:(NSUInteger) dMinutes

{

    return [[NSDatedate] initWithTimeIntervalSinceNow:dMinutes *60];

}


/**

 *  获取指定分钟前的日期

 *

 *  @param dMinutes 分钟

 *

 *  @return NSDate类型

 */

+(NSDate *) dateWithMinutesBeformNow:(NSInteger) dMinutes

{

    return [[NSDatedate] initWithTimeIntervalSinceNow:dMinutes *60 * (-1)];

}


/**

 *  当前日期与指定日期比较是否相等

 *

 *  @param dMinutes 分钟

 *

 *  @return NSDate类型

 */

-(BOOL) isEqualtoDatelgnoringTime:(NSDate *) aDate

{

   return [[NSDatedate] isEqualToDate:aDate];

}


/**

 *  是不是今天

 *

 *  @param aDate 日期

 *

 *  @return NSDate类型

 */

-(BOOL) IsToday:(NSDate *) aDate

{

    NSCalendar *cld = [[NSCalendaralloc] init];

   return [cld isDateInToday:aDate];

}


/**

 *  是不是明天

 *

 *  @param aDate 日期

 *

 *  @return NSDate类型

 */

-(BOOL) isTomorrow:(NSDate *) aDate;

{

    NSCalendar *cld = [[NSCalendaralloc] init];

   return [cld isDateInTomorrow:aDate];

}


/**

 *  是不是昨天

 *

 *  @param aDate 日期

 *

 *  @return NSDate类型

 */

-(BOOL) isYesterday:(NSDate *) aDate

{

    NSCalendar *cld = [[NSCalendaralloc] init];

   return [cld isDateInYesterday:aDate];

}


/**

 *  是不是同一周

 *

 *  @param aDate 日期

 *

 *  @return NSDate类型

 */

-(BOOL) isSameWeekAsDate:(NSDate *) aDate

{

   NSDate *start;

    NSTimeInterval extends;

    NSCalendar *cal = [NSCalendarautoupdatingCurrentCalendar];

   NSDate *today = [NSDatedate];

    BOOL success = [calrangeOfUnit:NSWeekdayCalendarUnitstartDate:&start interval:&extendsforDate:today];

    

   if (!success) {

        return false;

    }

    

    NSTimeInterval dateInSecs = [aDatetimeIntervalSinceReferenceDate];

   NSTimeInterval dateStartInSecs = [start timeIntervalSinceReferenceDate];

   if (dateInSecs > dateStartInSecs && dateInSecs < (dateStartInSecs + extends)) {

       return true;

    }else {

        return false;

    }

}


/**

 *  是不是同一周

 *

 *  @param aDate 日期

 *

 *  @return NSDate类型

 */

-(BOOL) isThisWeek:(NSDate *) aDate

{

   NSDate *start;

    NSTimeInterval extends;

    NSCalendar *cal = [NSCalendarautoupdatingCurrentCalendar];

   NSDate *today = [NSDatedate];

    //根据参数提供的时间点,返回所在日历单位的开始时间。如果startDateinterval均可以计算,则返回YES;否则返回NO

    // extends获取的是日历单位所对应的秒数

    BOOL success = [calrangeOfUnit:NSWeekdayCalendarUnitstartDate:&start interval:&extendsforDate:today];

    

   if (!success) {

        return false;

    }

    

    NSTimeInterval dateInSecs = [aDatetimeIntervalSinceReferenceDate];

   NSTimeInterval dateStartInSecs = [start timeIntervalSinceReferenceDate];

   if (dateInSecs > dateStartInSecs && dateInSecs < (dateStartInSecs + extends)) {

       return true;

    }else {

        return false;

    }

}


/**

 *  是不是下一周

 *

 *  @param aDate 日期

 *

 *  @return NSDate类型

 */

-(BOOL) isNextWeek:(NSDate *) aDate

{

   NSDate *start;

    NSTimeInterval extends;

    NSCalendar *cal = [NSCalendarautoupdatingCurrentCalendar];

   NSDate *today = [NSDatedate];

    BOOL success = [calrangeOfUnit:NSWeekdayCalendarUnitstartDate:&start interval:&extendsforDate:today];

    

   if (!success) {

        return false;

    }

    

    NSTimeInterval dateInSecs = [aDatetimeIntervalSinceReferenceDate];

   NSTimeInterval dateStartInSecs = [start timeIntervalSinceReferenceDate];

   if (dateInSecs > (dateStartInSecs + extends) && dateInSecs < (dateStartInSecs +2 * extends)) {

       return true;

    }else {

        return false;

    }

}


/**

 *  是不是上一周

 *

 *  @param aDate 日期

 *

 *  @return NSDate类型

 */

-(BOOL) isLastWeek:(NSDate *) aDate

{

   NSDate *start;

    NSTimeInterval extends;

    NSCalendar *cal = [NSCalendarautoupdatingCurrentCalendar];

   NSDate *today = [NSDatedate];

    BOOL success = [calrangeOfUnit:NSWeekdayCalendarUnitstartDate:&start interval:&extendsforDate:today];

    

   if (!success) {

        return false;

    }

    

    NSTimeInterval dateInSecs = [aDatetimeIntervalSinceReferenceDate];

   NSTimeInterval dateStartInSecs = [start timeIntervalSinceReferenceDate];

   if (dateInSecs < dateStartInSecs && dateInSecs > (dateStartInSecs - extends)) {

       return true;

    }else {

        return false;

    }


}


/**

 *  是不是同一年

 *

 *  @param aDate 日期

 *

 *  @return NSDate类型

 */

-(BOOL) isSameYearAsDate:(NSDate *) aDate andSecDate:(NSDate *) bDate

{

    NSDateFormatter *ds = [[NSDateFormatteralloc] init];

    [ds setDateFormat:@"yyyy"];

   NSString *bDateStr = [ds stringFromDate:bDate];

   NSString *aDateStr = [ds stringFromDate:aDate];

    

   if ([aDateStr isEqual:bDateStr]) {

       return true;

    }else {

        return false;

    }

}


/**

 *  是不是同一年

 *

 *  @param aDate 日期

 *

 *  @return NSDate类型

 */

-(BOOL) isThisYear:(NSDate *) aDate

{

    NSDateFormatter *ds = [[NSDateFormatteralloc] init];

    [ds setDateFormat:@"yyyy"];

   NSString *currentDateStr = [ds stringFromDate:[NSDate date]];

   NSString *compareDateStr = [ds stringFromDate:aDate];

    

   if ([currentDateStr isEqual:compareDateStr]) {

       return true;

    }else {

        return false;

    }

}


/**

 *  是不是下一年

 *

 *  @param aDate 日期

 *

 *  @return NSDate类型

 */

-(BOOL) isNextYear:(NSDate *) aDate

{

    NSDateFormatter *ds = [[NSDateFormatteralloc] init];

    [ds setDateFormat:@"yyyy"];

   NSString *currentDateStr = [ds stringFromDate:[NSDate date]];

   NSString *compareDateStr = [ds stringFromDate:aDate];

    

   NSInteger currentDateInt = [currentDateStr integerValue];

   NSInteger compareDateInt = [compareDateStr integerValue];

   if (compareDateInt - currentDateInt == 1) {

       return true;

    }else {

        return false;

    }

}


/**

 *  是不是上一年

 *

 *  @param aDate 日期

 *

 *  @return NSDate类型

 */

-(BOOL) isLastYear:(NSDate *) aDate

{

    NSDateFormatter *ds = [[NSDateFormatteralloc] init];

    [ds setDateFormat:@"yyyy"];

   NSString *currentDateStr = [ds stringFromDate:[NSDate date]];

   NSString *compareDateStr = [ds stringFromDate:aDate];

    

   NSInteger currentDateInt = [currentDateStr integerValue];

   NSInteger compareDateInt = [compareDateStr integerValue];

   if (currentDateInt - compareDateInt == 1) {

       return true;

    }else {

        return false;

    }

}


/**

 *  是不是比dDate

 *

 *  @param aDate 指定日期

 *

 *  @return NSDate类型

 */

-(BOOL) isEarlierThanDate:(NSDate *) aDate

{

   NSDate *date = [[NSDatealloc] init];

   if ([[date laterDate:aDate]isEqualToDate:aDate]) {

       return true;

    }else {

        return false;

    }

}


/**

 *  是不是比aData

 *

 *  @param aDate 指定日期

 *

 *  @return NSDate类型

 */

-(BOOL) isLaterThanDate:(NSDate *) aDate

{

   NSDate *date = [[NSDatealloc] init];

   if ([[date earlierDate:aDate]isEqualToDate:aDate]) {

        return false;

    }else {

       return true;

    }

}


0 0
原创粉丝点击