1 min readApr 18, 2016
Глава 12
Используйте два экземпляра NSDate для вычисления продолжительности вашей жизни в секундах. Подсказка: новый объект date по заданному году, месяцу и т. д. создается следующим образом:
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:1969];
[comps setMonth:4];
[comps setDay:30];
[comps setHour:13];
[comps setMinute:10];
[comps setSecond:0];
NSCalendar *g = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *dateOfBirth = [g dateFromComponents:comps];
Для получения количества секунд между двумя экземплярами NSDate сле- дует использовать метод timeIntervalSinceDate:
double d = [laterDate timeIntervalSinceDate:earlierDate];
Решение:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSDate *now = [[NSDate alloc] init];
NSLog(@"Текущая дата (время по гринвичу) %@", now);
double seconds = [now timeIntervalSince1970];
NSLog(@"С 1 января 1970 года прошло %f секунд.", seconds);
NSDate *later = [now dateByAddingTimeInterval:100000];
NSLog(@"Через 100 000 секунд от текущего момента будет: %@", later);
NSCalendar *cal = [NSCalendar currentCalendar];
NSUInteger day = [cal ordinalityOfUnit:NSCalendarUnitDay
inUnit:NSCalendarUnitMonth
forDate:now];
NSLog(@"Сейчас %lu день месяца", day);
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:1980];
[comps setMonth:11];
[comps setDay:9];
[comps setHour:13];
[comps setMinute:10];
[comps setSecond:0];
NSCalendar *g = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDate *dateOfBirth = [g dateFromComponents:comps];
double secondsInMyLive = [now timeIntervalSinceDate:dateOfBirth];
double minutesInMyLive = secondsInMyLive / 60;
double hourInMyLive = minutesInMyLive / 60;
double dayInMyLive = hourInMyLive / 24;
float yearInMyLive = dayInMyLive / 365;
NSLog(@"День моего рождения %@", dateOfBirth);
NSLog(@"Продолжительность моей жизни в секундах состовляет %.0f", secondsInMyLive);
NSLog(@"Продолжительность моей жизни в минутах состовляет %.0f", minutesInMyLive);
NSLog(@"Продолжительность моей жизни в часах состовляет %.0f", hourInMyLive);
NSLog(@"Продолжительность моей жизни в днях состовляет %.0f", dayInMyLive);
NSLog(@"Продолжительность моей жизни в годах состовляет %.0f", yearInMyLive);
}
return 0;
}