//
// main.m
#import<Foundation/Foundation.h>
#import "NSString+PlayDota.h"
#import "NSDate+ChangeString.h"
#import "Person.h"
int main(intargc, const char * argv[]) {
@autoreleasepool {
// NSDate
// 创建一个NSDate对象
// 1、初始化一个当前时间
// NSDate *date = [NSDatedate];
//因为NSDate这个类重写了 description 方法,所以打印出来的总是相对于格林尼治(0时区)的时间。
// NSLog(@"%@",date);
// // 2、相对于当前时间的date对象(- 表示之前,时间点为 0 度经线时间)
// NSDate *date1 = [NSDate dateWithTimeIntervalSinceNow:60 * 60];
// NSLog(@"%@",date1);
//
// // 3、相对于 1970年的 1 月 1 日 0 时 0分 0 秒的时间对象。
// NSDate *date2 = [NSDate dateWithTimeIntervalSince1970:60 * 60 * 24];
// NSLog(@"%@",date2);
//
// // 4、相对于 2001 年 1 月 1 日 00:00:00的时间对象
// NSDate *date3 = [NSDate dateWithTimeIntervalSinceReferenceDate:60 * 60];
// NSLog(@"%@",date3);
//
// NSDate *earlier = [date1 earlierDate:date3];
// NSLog(@"%@", earlier);
//
//
// double interval = [date1 timeIntervalSinceDate:date];
// NSLog(@"%f",interval);
//
// // 用NSTimeZone得到一个相对于 GMT 的时间偏移量
// NSTimeZone *zone = [NSTimeZonesystemTimeZone];
// NSLog(@"%@",zone);
//
// // 得到当前时区和GMT之间的时间间隔。
// NSTimeIntervaltimeInterval = [zone secondsFromGMT];
// NSLog(@"%f",timeInterval);
// // 得到当前时区对象
// NSDate *date7 = [NSDatedateWithTimeIntervalSinceNow:timeInterval];
// NSLog(@"%@",date7);
//计算当前时间和⼀一个固定时间的差值,如果差值在60秒内,输出“刚刚”,如果在60秒外3600秒内,输出“xx分钟前”,如果3600秒外,3600*24秒内,输出“xx⼩小时前”
// NSDate *date4 = [NSDatedateWithTimeIntervalSinceReferenceDate: 60 ];
// NSDate *date5 = [NSDatedateWithTimeIntervalSinceReferenceDate: 60 * 60];
// NSTimeIntervaltimeInterval = [date4 timeIntervalSinceDate:date5];
//
// if (timeInterval< 0) {
// timeInterval = timeInterval * -1;
// }
// if (timeInterval< 60) {
// NSLog(@"刚刚");
// }else if (timeInterval< 3600){
// NSLog(@"%f分钟前",timeInterval/ 60);
// }else{
// NSLog(@"%f小时前",timeInterval/ 60 / 60);
// }
// NSDateFormatter
// 当前类以及父类都没有初始化方法,用的是NSObject的初始化方法
// NSDateFormatter *format =[[NSDateFormatteralloc]init];
//设置格式
// // (英文字母)固定格式yyyy MM dd HH mm ss
// [formatsetDateFormat:@"yyyy-MM-dd-HH-mm-ss"];
//
// //根据格式将字符串转化为时间
// NSDate *date = [format dateFromString:@"2015-11-13-11-49-24"];
// NSLog(@"%@",date);
//
// // 根据格式将时间转换为字符串
// NSString *str = [format stringFromDate:date];
// NSLog(@"%@",str);
// // 将字符串@“2014年05月01日10点23分18秒”转换为NSDate对象。
// NSString *str = @"2014年5月01日 10点23分18秒";
// NSDateFormatter *format = [[NSDateFormatteralloc]init];
// [format setDateFormat:@"yyyy年MM月dd日 HH点mm分ss秒"];
// NSDate *date = [format dateFromString:str];
// NSLog(@"%@",date);
//category
NSString *str = @"dota";
// 给分类添加的方法发送消息
[strplayDota];
// category: 1、可以添加方法:方法既可以被当前类使用,也可以被子类使用; 2、分类不可以添加实例变量。
// *** 3、一般为没有 .m 的类添加方法。 ***
// inherit: 1、可以添加实例变量以及方法,但是添加的方法以及实例变量只能被自己以及子类使用,不能被父类使用。
NSDate *date =[NSDatedateWithDateString:@"20140402142850"];
NSLog(@"%@",date);
// extension
// 延展用来管理类的私有方法,这个类程序员必须拥有 .h 和 .m 文件
// 延展的作用:符合OC的三大特征之封装特性,使程序员更好的使用这个类。
Person *p = [[Person alloc] initName:@"cook"];
//[p cook];
// 协议和代理
// 1、首先需要些一个协议,协议是声明方法(分为必须实现和选择实现),因此只有。文件
// 2、签订协议需要两个对象(委托方,代理人),委托方不想做的事情通过协议交给代理人去做。
// 3、代理人必须遵守协议,且实现协议里的方法
}
return 0;
}
// main.m
#import<Foundation/Foundation.h>
#import "NSString+PlayDota.h"
#import "NSDate+ChangeString.h"
#import "Person.h"
int main(intargc, const char * argv[]) {
@autoreleasepool {
// NSDate
// 创建一个NSDate对象
// 1、初始化一个当前时间
// NSDate *date = [NSDatedate];
//因为NSDate这个类重写了 description 方法,所以打印出来的总是相对于格林尼治(0时区)的时间。
// NSLog(@"%@",date);
// // 2、相对于当前时间的date对象(- 表示之前,时间点为 0 度经线时间)
// NSDate *date1 = [NSDate dateWithTimeIntervalSinceNow:60 * 60];
// NSLog(@"%@",date1);
//
// // 3、相对于 1970年的 1 月 1 日 0 时 0分 0 秒的时间对象。
// NSDate *date2 = [NSDate dateWithTimeIntervalSince1970:60 * 60 * 24];
// NSLog(@"%@",date2);
//
// // 4、相对于 2001 年 1 月 1 日 00:00:00的时间对象
// NSDate *date3 = [NSDate dateWithTimeIntervalSinceReferenceDate:60 * 60];
// NSLog(@"%@",date3);
//
// NSDate *earlier = [date1 earlierDate:date3];
// NSLog(@"%@", earlier);
//
//
// double interval = [date1 timeIntervalSinceDate:date];
// NSLog(@"%f",interval);
//
// // 用NSTimeZone得到一个相对于 GMT 的时间偏移量
// NSTimeZone *zone = [NSTimeZonesystemTimeZone];
// NSLog(@"%@",zone);
//
// // 得到当前时区和GMT之间的时间间隔。
// NSTimeIntervaltimeInterval = [zone secondsFromGMT];
// NSLog(@"%f",timeInterval);
// // 得到当前时区对象
// NSDate *date7 = [NSDatedateWithTimeIntervalSinceNow:timeInterval];
// NSLog(@"%@",date7);
//计算当前时间和⼀一个固定时间的差值,如果差值在60秒内,输出“刚刚”,如果在60秒外3600秒内,输出“xx分钟前”,如果3600秒外,3600*24秒内,输出“xx⼩小时前”
// NSDate *date4 = [NSDatedateWithTimeIntervalSinceReferenceDate: 60 ];
// NSDate *date5 = [NSDatedateWithTimeIntervalSinceReferenceDate: 60 * 60];
// NSTimeIntervaltimeInterval = [date4 timeIntervalSinceDate:date5];
//
// if (timeInterval< 0) {
// timeInterval = timeInterval * -1;
// }
// if (timeInterval< 60) {
// NSLog(@"刚刚");
// }else if (timeInterval< 3600){
// NSLog(@"%f分钟前",timeInterval/ 60);
// }else{
// NSLog(@"%f小时前",timeInterval/ 60 / 60);
// }
// NSDateFormatter
// 当前类以及父类都没有初始化方法,用的是NSObject的初始化方法
// NSDateFormatter *format =[[NSDateFormatteralloc]init];
//设置格式
// // (英文字母)固定格式yyyy MM dd HH mm ss
// [formatsetDateFormat:@"yyyy-MM-dd-HH-mm-ss"];
//
// //根据格式将字符串转化为时间
// NSDate *date = [format dateFromString:@"2015-11-13-11-49-24"];
// NSLog(@"%@",date);
//
// // 根据格式将时间转换为字符串
// NSString *str = [format stringFromDate:date];
// NSLog(@"%@",str);
// // 将字符串@“2014年05月01日10点23分18秒”转换为NSDate对象。
// NSString *str = @"2014年5月01日 10点23分18秒";
// NSDateFormatter *format =[[NSDateFormatteralloc]init];
// [format setDateFormat:@"yyyy年MM月dd日 HH点mm分ss秒"];
// NSDate *date = [format dateFromString:str];
// NSLog(@"%@",date);
//category
NSString *str = @"dota";
// 给分类添加的方法发送消息
[strplayDota];
// category: 1、可以添加方法:方法既可以被当前类使用,也可以被子类使用; 2、分类不可以添加实例变量。
// *** 3、一般为没有 .m 的类添加方法。 ***
// inherit: 1、可以添加实例变量以及方法,但是添加的方法以及实例变量只能被自己以及子类使用,不能被父类使用。
NSDate *date = [NSDatedateWithDateString:@"20140402142850"];
NSLog(@"%@",date);
// extension
// 延展用来管理类的私有方法,这个类程序员必须拥有 .h 和 .m 文件
// 延展的作用:符合OC的三大特征之封装特性,使程序员更好的使用这个类。
Person *p = [[Person alloc] initName:@"cook"];
//[p cook];
// 协议和代理
// 1、首先需要些一个协议,协议是声明方法(分为必须实现和选择实现),因此只有。文件
// 2、签订协议需要两个对象(委托方,代理人),委托方不想做的事情通过协议交给代理人去做。
// 3、代理人必须遵守协议,且实现协议里的方法
}
return 0;
}
// 分类不可以添加实例变量
// 为字符串类添加方法
// Category
// NSDate+ChangeString.h
#import<Foundation/Foundation.h>
@interfaceNSDate (ChangeString)
+ (NSDate *)dateWithDateString:(NSString*)string;
@end
#import"NSDate+ChangeString.h"
@implementationNSDate (ChangeString)
+ (NSDate *)dateWithDateString:(NSString*)string{
NSDateFormatter *format =[[NSDateFormatteralloc]init];
[formatsetDateFormat:@"yyyyMMddHHmmss"];
NSDate *date = [format dateFromString:string];
return date;
}
@end