В этом уроке рассказывается как работать с датой, временем, таймерами.
Метод date возвращает текущую время и дату:
NSDate *date =[NSDate date];
NSLog(@"Date: %@",date);
Можно создать дату используя временные интервалы в секундах
NSLog(@"%@",[date dateByAddingTimeInterval:5000] );
NSLog(@"%@",[date dateByAddingTimeInterval:-5000] );
Сравнение двух дат:
[date compare:[date dateByAddingTimeInterval:-5000]];
Вот еще один метод создание даты с 2001г
NSDate *date2=[NSDate dateWithTimeIntervalSinceReferenceDate:10];
NSLog(@"date2=%@",date2);
ДатаФорматтер используется для форматировании вывода даты и времени
NSDateFormatter * dateFormatter=[[NSDateFormatter alloc]init];
Метод setDateStyle используется чтобы выбрать один из типов вывода даты
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
NSLog(@"NSDateFormatterShortStyle %@",[dateFormatter stringFromDate:date]);
[dateFormatter setDateStyle:NSDateFormatterNoStyle];
NSLog(@"NSDateFormatterNoStyle %@",[dateFormatter stringFromDate:date]);
Можно задать свой формат даты:
[dateFormatter setDateFormat:@"yy/MM/dd EEEE HH:mm:SS a w"];
[dateFormatter setDateFormat:@"yy/MM/dd HH:mm"];
NSLog(@"my style: %@",[dateFormatter stringFromDate:date]);
Можно сформировать дату из строки:
NSDate *date3=[dateFormatter dateFromString:@"08/05/17 15:37"];
NSLog(@"my date: %@",date3);
Можно использовать календарь
NSDate * d=[NSDate date];
NSCalendar * calendar= [NSCalendar currentCalendar];
// NSDateComponents *component=[calendar component:NSCalendarUnitEra fromDate:d ];
// NSLog(@"%@",component);
NSDate *date1=[NSDate date];
NSDate *date2=[NSDate dateWithTimeIntervalSinceNow:-1000000];
NSCalendar *calendar=[NSCalendar currentCalendar];
NSDateComponents * components=
[calendar components:NSCalendarUnitDay|NSCalendarUnitMinute fromDate:date1 toDate:date2 options:0];
NSLog(@"%@",components);
Для создания таймера необходимо использовать:
NSTimer* timer1= [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerTest:) userInfo:nil repeats:YES];
и создать функцию таймера:
-(void) timerTest: (NSTimer*) timer{
NSDateFormatter *dateFormater=[[NSDateFormatter alloc] init];
[dateFormater setDateFormat:@"yy/MM/dd HH:mm:ss"];
NSLog(@"%@",[dateFormater stringFromDate:[NSDate date ]]);
}
}
Таймер так же необходимо правильно уничтожать, чтобы небыло утечки памяти:
[timer invalidate];
Тестовый проект с уроком 16 Время и дата.
Домашнее задание к уроку 16 Время и дата.
Ученик.
1. Создайте класс студент у когторого будет проперти dateOfBirth (дата рождения), которая собственно NSDate.
2. Инициализируйте NSMutableArray и в цикле создайте 30 студентов.
3. Каждому установите дату рождения. Возраст рандомный от 16 до 50 лет.
4. В другом цикле пройдитесь по всему массиву и выведите день рождения каждого студента в адекватном формате.
Студент.
5. Отсортируйте массив студентов по дате рождения, начиная от самого юного.
6. Используя массивы имен и фамилий (по 5-10 имен и фамилий), каждому студенту установите случайное имя и случайную фамилию.
7. Выведите отсортированных студентов: Имя, Фамилия, год рождения
Мастер.
10. Создайте таймер в апп делегате, который отсчитывает один день за пол секунды.
11. Когда таймер доходит до дня рождения любого их студентов - поздравлять его с днем рождения.
12. Выведите на экран разницу в возрасте между самым молодым и самым старым студентом (количество лет, месяцев, недель и дней)
Супермен.
13. Выведите на экран день недели, для каждого первого дня каждого месяца в текущем году (от начала до конца)
14. Выведите дату (число и месяц) для каждого воскресенья в текущем году (от начала до конца)
15. Выведите количество рабочих дней для каждого месяца в текущем году (от начала до конца)
Выполнены все задания.
Проект домашнего задания к уроку 16 Дата.
Метод date возвращает текущую время и дату:
NSDate *date =[NSDate date];
NSLog(@"Date: %@",date);
Можно создать дату используя временные интервалы в секундах
NSLog(@"%@",[date dateByAddingTimeInterval:5000] );
NSLog(@"%@",[date dateByAddingTimeInterval:-5000] );
Сравнение двух дат:
[date compare:[date dateByAddingTimeInterval:-5000]];
Вот еще один метод создание даты с 2001г
NSDate *date2=[NSDate dateWithTimeIntervalSinceReferenceDate:10];
NSLog(@"date2=%@",date2);
ДатаФорматтер используется для форматировании вывода даты и времени
NSDateFormatter * dateFormatter=[[NSDateFormatter alloc]init];
Метод setDateStyle используется чтобы выбрать один из типов вывода даты
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
NSLog(@"NSDateFormatterShortStyle %@",[dateFormatter stringFromDate:date]);
[dateFormatter setDateStyle:NSDateFormatterNoStyle];
NSLog(@"NSDateFormatterNoStyle %@",[dateFormatter stringFromDate:date]);
Можно задать свой формат даты:
[dateFormatter setDateFormat:@"yy/MM/dd EEEE HH:mm:SS a w"];
[dateFormatter setDateFormat:@"yy/MM/dd HH:mm"];
NSLog(@"my style: %@",[dateFormatter stringFromDate:date]);
Можно сформировать дату из строки:
NSDate *date3=[dateFormatter dateFromString:@"08/05/17 15:37"];
NSLog(@"my date: %@",date3);
Можно использовать календарь
NSDate * d=[NSDate date];
NSCalendar * calendar= [NSCalendar currentCalendar];
// NSDateComponents *component=[calendar component:NSCalendarUnitEra fromDate:d ];
// NSLog(@"%@",component);
NSDate *date1=[NSDate date];
NSDate *date2=[NSDate dateWithTimeIntervalSinceNow:-1000000];
NSCalendar *calendar=[NSCalendar currentCalendar];
NSDateComponents * components=
[calendar components:NSCalendarUnitDay|NSCalendarUnitMinute fromDate:date1 toDate:date2 options:0];
NSLog(@"%@",components);
Для создания таймера необходимо использовать:
NSTimer* timer1= [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerTest:) userInfo:nil repeats:YES];
и создать функцию таймера:
-(void) timerTest: (NSTimer*) timer{
NSDateFormatter *dateFormater=[[NSDateFormatter alloc] init];
[dateFormater setDateFormat:@"yy/MM/dd HH:mm:ss"];
NSLog(@"%@",[dateFormater stringFromDate:[NSDate date ]]);
}
}
Таймер так же необходимо правильно уничтожать, чтобы небыло утечки памяти:
[timer invalidate];
Тестовый проект с уроком 16 Время и дата.
Домашнее задание к уроку 16 Время и дата.
Ученик.
1. Создайте класс студент у когторого будет проперти dateOfBirth (дата рождения), которая собственно NSDate.
2. Инициализируйте NSMutableArray и в цикле создайте 30 студентов.
3. Каждому установите дату рождения. Возраст рандомный от 16 до 50 лет.
4. В другом цикле пройдитесь по всему массиву и выведите день рождения каждого студента в адекватном формате.
Студент.
5. Отсортируйте массив студентов по дате рождения, начиная от самого юного.
6. Используя массивы имен и фамилий (по 5-10 имен и фамилий), каждому студенту установите случайное имя и случайную фамилию.
7. Выведите отсортированных студентов: Имя, Фамилия, год рождения
Мастер.
10. Создайте таймер в апп делегате, который отсчитывает один день за пол секунды.
11. Когда таймер доходит до дня рождения любого их студентов - поздравлять его с днем рождения.
12. Выведите на экран разницу в возрасте между самым молодым и самым старым студентом (количество лет, месяцев, недель и дней)
Супермен.
13. Выведите на экран день недели, для каждого первого дня каждого месяца в текущем году (от начала до конца)
14. Выведите дату (число и месяц) для каждого воскресенья в текущем году (от начала до конца)
15. Выведите количество рабочих дней для каждого месяца в текущем году (от начала до конца)
Выполнены все задания.
Проект домашнего задания к уроку 16 Дата.
Комментариев нет:
Отправить комментарий