NSDate,NSCalendar:判断是否为今天,昨天,今年

/**

*  是否为今天

*/

- (BOOL)isToday

{

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);

}

/**

*  是否为昨天

*/

#warning 待补充

- (BOOL)isYesterday

{

NSDate *now = [NSDate date];

NSDateFormatter *df = [[NSDateFormatter alloc]init];

df.dateFormat = @"yyyy-MM-dd";

NSString *nowString = [df stringFromDate:now];

NSDate *nowDate = [df dateFromString:nowString];

NSString *selfString = [df stringFromDate:self];

NSDate *selfDate = [df dateFromString:selfString];

NSCalendar *calendar = [NSCalendar currentCalendar];

NSDateComponents *datec = [calendar components:NSCalendarUnitDay fromDate:selfDate toDate:nowDate options:0];

return datec.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 nowCmps.year == selfCmps.year;

}

- (NSDateComponents *)deltaWithNow

{

NSCalendar *calendar = [NSCalendar currentCalendar];

int unit = NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;

return [calendar components:unit fromDate:self toDate:[NSDate date] options:0];

}

时间: 2024-10-10 15:34:56

NSDate,NSCalendar:判断是否为今天,昨天,今年的相关文章

ios中利用NSDateComponents、NSDate、NSCalendar判断当前时间是否在一天的某个时间段内。

应用中设置一般会存在这样的设置,如夜间勿扰模式,从8:00-23:00,此时如何判断当前时间是否在该时间段内.难点主要在于如何用NSDate生成一个8:00的时间和23:00的时间,然后用当前的时间跟这俩时间作对比就好了. 下面提供两条思路: 法1.用NSDate生成当前时间,然后转为字符串,从字符串中取出当前的年.月.日,然后再拼上时.分.秒,然后再将拼接后的字符串转为NSDate,最后用当前的时间跟自己生成的俩NSDate的时间点比较.(该方法比较笨,也不难,但看起来有点太菜了,看上去不怎么

supersr--时间显示逻辑-->NSDate+NSCalendar

- (NSString *)created_at{ //    从后台返回的字符串格式:Mon Aug 03 09:17:31 +0800 2014, //NSDateFormatter可以把NSDate转成字符串,也可以把字符串转成NSDate //初始化一个时间格式化器 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; //指定时间格式化字符串-->是一个什么样的格式 formatter.dateFormat = @&quo

NSDate,NSCalendar,NSTimer,NSTimeZone

NSDate存储的是世界标准时(UTC),输出时需要根据时区转换为本地时间 Dates NSDate类提供了创建date,比较date以及计算两个date之间间隔的功能.Date对象是不可改变的. 如果你要创建date对象并表示当前日期,你可以alloc一个NSDate对象并调用init初始化: C代码   NSDate *now = [[NSDate alloc] init]; 或者使用NSDate的date类方法来创建一个日期对象.如果你需要与当前日期不同的日期,你可以使用NSDate的 i

NSDate ,NSCalendar一些用法

NSDate *date = [NSDate date]; [date dateByAddingTimeInterval: ]//通过加减秒数来改变date的值这里一般需要用到日期格式器NSFormatter类 NSFormatter *formatter = [NSFormatter alloc]init];[formatter setDateStyle: ]//设置系统时间格式[formatter setDateFormat:];//自定义时间格式(格式要规范)G: 公元时代,例如AD公元y

IOS,利用NSDateComponents,NSCalendar判断当前的时间点是否在某个时间段内的方法

1 - (BOOL)isBetweenFromHour:(NSInteger)fromHour toHour:(NSInteger)toHour 2 { 3 NSDate *date8 = [self getCustomDateWithHour:8]; 4 NSDate *date23 = [self getCustomDateWithHour:23]; 5 NSDate *currentDate = [NSDate date]; 6 7 if ([currentDate compare:dat

判断日期是今天昨天明天

这个主要是从网上看到的 感觉非常好打算保存起来 -(NSString *)compareDate:(NSDate *)date{ NSTimeInterval secondsPerDay = 24 * 60 * 60;    NSDate *today = [[NSDate alloc] init];    NSDate *tomorrow, *yesterday; tomorrow = [today dateByAddingTimeInterval: secondsPerDay];    ye

最全面的NSDateHelper 分享

NSDateUtil 分享 (ios开发交流群:486468672) 代码下载:https://github.com/foxswang/NSDateUtil 史上最全面NSDate Utility 没有之一 常用格式化字符串 满足80% 工作使用场景 /* MMM d, yyyy h:mm a 9月 12, 2015 7:36 下午 MMM d, yyyy 9月 12, 2015 MMM d h:mm a 9月 12 7:36 下午 MMM d 9月 12 EEEE 星期六 EEEE h:mm

为 NSDate 添加扩展类 判断时间

#import "NSDate+Extension.h" @implementation NSDate (Extension) /** * 判断某个时间是否为今年 */ - (BOOL)isThisYear { NSCalendar *calendar = [NSCalendar currentCalendar]; // 获得某个时间的年月日时分秒 NSDateComponents *dateCmps = [calendar components:NSCalendarUnitYear

猫猫学iOS 之微博项目实战(9)微博模型之时间相关重要操作,判断刚刚,昨天,今年等等

猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 一:效果 --因为本人黑苹果,系统时间乱跳 时间显示的不准,但是代码没有问题 二:实现代码 /** 1.今年 1> 今天 * 1分内: 刚刚 * 1分~59分内:xx分钟前 * 大于60分钟:xx小时前 2> 昨天 * 昨天 xx:xx 3> 其他 * xx-xx xx:xx 2.非今年 1> xxxx-xx-xx xx:xx */ - (NSSt