Вопрос

Я пытаюсь установить некоторые компоненты сегодняшнего дня с NsdateComponent, как:

    NSDateComponents *comps = [[NSDateComponents alloc] init];
    [comps setDay:1];
    [comps setHour:1];
    [comps setMinute:44];
    NSCalendar *cal = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
    NSDate *date = [cal dateByAddingComponents:comps toDate:[NSDate date] options:0];
    [comps release];
    NSLog(@"%@", date);
.

Но этот пример добавит время на текущую дату.Теперь, что я хочу сделать, это добавить один день, но установить час и минуту до указанных значений (без добавления).Как я могу сделать это?

Это было полезно?

Решение

Это работало в конце:

NSDateComponents *comp = [[NSCalendar currentCalendar] components:NSYearCalendarUnit
NSMonthCalendarUnit | NSDayCalendarUnit fromDate:[NSDate date]];
[comp setDay:[comp day] +1];
[comp setHour: 12];
[comp setMinute: 00];
NSDate *date = [[NSCalendar currentCalendar] dateFromComponents:comp];
.

Другие советы

Легко: просто используйте свойство date ...

NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:1];
[comps setHour:1];
[comps setMinute:44];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [gregorian dateFromComponents:comps];
.

Редактировать: Забыли календарь.Из руководства (1-я страница NSDateComponents в BOLD ):

Важно: объект NsdateComponents бессмысленнее;Вам нужно знать, в каком календаре он интерпретируется, и вам нужно знать, являются ли значения абсолютными значениями единиц или количества единиц.

Есть также пример того, как его использовать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top