iOS iOS NSDate 时间计算
打印效果:
#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));
}