ios开发日期的NSDate,NSCalendar分类
2024-08-31 18:02:27
#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]; //
NSString *nowString = [fmt stringFromDate:[NSDate date]]; // 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:]; return cmps.year ==
&& cmps.month ==
&& cmps.day == ;
} - (BOOL)isTomorrow
{
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
fmt.dateFormat = @"yyyyMMdd"; NSString *selfString = [fmt stringFromDate:self]; //
NSString *nowString = [fmt stringFromDate:[NSDate date]]; // 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:]; return cmps.year ==
&& cmps.month ==
&& cmps.day == -;
}
#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
最新文章
- 关于button和form提交的一些问题
- jq获取绝对定位与相对定位的top, left值
- windows下开启mysql远程访问
- 【转】深入浅出REST
- js个人笔记
- Journal.Today 1.0.0
- ubuntu 64bit “arm-linux-gcc: No such file or directory”问题的解决方法
- hdu 1099 Lottery
- 第三章SignalR在线聊天例子
- NGUI判断是否点击到UI控件
- call和apply的异同
- 洛谷P1171 售货员的难题【状压DP】
- DSAPI 简单WebAPI实现
- Scrapy学习篇(九)之文件与图片下载
- spring载入外部配置文件的方法
- python3练习-装饰器
- 使用markdown第一个博客
- 青岛大学开源OJ平台搭建
- flexbox子盒子order属性
- Linux alias理解及设置