iOS NSDate 时间计算

//联系人:石虎  QQ: 1224614774 昵称:嗡嘛呢叭咪哄

打印效果图:

iOS NSDate 时间计算_第1张图片

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad

{

[super viewDidLoad];

//当前时间

[self currentTime];

//当年共多少天

[self yearTotalDays];

//相差几天

[self quiteFewDays];

}

/**

当前时间

*/

- (void)currentTime

{

//得到当前的时间

NSDate * date = [NSDate date];

//时间管理

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

//时间格式

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

//设置时间间隔(秒)(这个我是计算出来的,不知道有没有简便的方法 )

NSTimeInterval time = 365 * 24 * 60 * 60;//一年的秒数

//得到一年之前的当前时间(-:表示向前的时间间隔(即去年),如果没有,则表示向后的时间间隔(即明年))

NSDate * lastYear = [date dateByAddingTimeInterval:-time];

//转化为字符串

NSString * startDate = [dateFormatter stringFromDate:lastYear];

NSString *dayYY = [NSString stringWithFormat:@"%@",startDate];

NSLog(@"dayYY---> %@",dayYY);

}

/**

当年共多少天

*/

- (void)yearTotalDays

{

//2.当年共多少天

NSCalendar *calender = [NSCalendar currentCalendar];

//计算时间

NSDateComponents *comps =[calender components:(NSYearCalendarUnit | NSMonthCalendarUnit |NSDayCalendarUnit | NSWeekCalendarUnit)fromDate:[NSDate date]];

int count = 0;

for (int i=1; i<=12; i++) {

[comps setMonth:i];

NSRange range = [calender rangeOfUnit:NSDayCalendarUnit inUnit:NSMonthCalendarUnit forDate: [calender dateFromComponents:comps]];

count += range.length;

}

NSLog(@"count--->%d", count);

}

/**

相差几天

*/

- (void)quiteFewDays

{

//3.当时时间距离未来(过去)的天数

NSString * time = @"2017-06-07";  //可以写过去时间差

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

[dateFormatter setDateFormat:@"yyyy-MM-dd"];

//根据需求 选择date的方法

NSDate * date = [dateFormatter dateFromString:time];//x现在到未来的时间差

//NSDate * date = [time dateFromString:dateFormatter];//现在和以前的时间差天数

NSDate * currentDate = [NSDate date];

NSUInteger sec = [date timeIntervalSinceDate:currentDate];

NSLog(@"sec---->%zd",sec/(3600*24));

}

你可能感兴趣的:(iOS NSDate 时间计算)