NSDate的一个分类,判断是否是今天,昨天,今年,获得与当前时间的差距,返回一个只有年月日的日期

来源:互联网 发布:美国原油库存eia数据 编辑:程序博客网 时间:2024/05/17 22:46
////  NSDate+YKD.h#import <Foundation/Foundation.h>@interface NSDate (YKD)/** *  是否为今天 */- (BOOL)isToday;/** *  是否为昨天 */- (BOOL)isYesterday;/** *  是否为今年 */- (BOOL)isThisYear;/** *  获得与当前时间的差距 */- (NSDateComponents *)deltaWithNow;/** *  返回一个只有年月日的时间 */- (NSDate *)dateWithYMD;@end
#import "NSDate+YKD.h"@implementation NSDate (YKD)- (BOOL)isToday{    //now: 2015-09-05 11:23:00    //self 调用这个方法的对象本身        NSCalendar *calendar = [NSCalendar currentCalendar];    int unit = NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear ;        //1.获得当前时间的 年月日    NSDateComponents *nowCmps = [calendar components:unit fromDate:[NSDate date]];        //2.获得self    NSDateComponents *selfCmps = [calendar components:unit fromDate:self];        return (selfCmps.year == nowCmps.year) && (selfCmps.month == nowCmps.month) && (selfCmps.day == nowCmps.day);}- (BOOL)isYesterday{    //2014-05-01    NSDate *nowDate = [[NSDate date] dateWithYMD];    //2014-04-30    NSDate *selfDate = [self dateWithYMD];        //获得nowDate和selfDate的差距    NSCalendar *calendar = [NSCalendar currentCalendar];    NSDateComponents *cmps = [calendar components:NSCalendarUnitDay fromDate:selfDate toDate:nowDate options:0];        return cmps.day == 1;}- (BOOL)isThisYear{    NSCalendar *calendar = [NSCalendar currentCalendar];    int unit = NSCalendarUnitYear ;        //1.获得当前时间的 年月日    NSDateComponents *nowCmps = [calendar components:unit fromDate:[NSDate date]];        //2.获得self    NSDateComponents *selfCmps = [calendar components:unit fromDate:self];        return selfCmps.year == nowCmps.year;}/** *  返回这种格式的日期 yyyy-MM-dd */- (NSDate *)dateWithYMD{    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];    fmt.dateFormat = @"yyyy-MM-dd";    NSString *selfStr = [fmt stringFromDate:self];    return [fmt dateFromString:selfStr];}- (NSDateComponents *)deltaWithNow{    NSCalendar *calendar = [NSCalendar currentCalendar];    int unit = NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;    return  [calendar components:unit fromDate:self toDate:[NSDate date] options:0];}@end


0 0
原创粉丝点击