Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как получить дату из дня года в iPhone?

Автор вопроса: BharathОтветов: 2

Как получить дату из дня года? например, если я укажу день как "1", тогда дата должна быть "1 января"

Как я могу получить это в iPhone? Я нашел ответ в javascript, но я хочу знать, как сделать то же самое в цели?

xcodeiosiphoneobjective-cnsdate

Ответы

Ответ 1 · рейтинг 2 · Mrunal

Я думаю, этот код вам подойдет: я создал пример функции, в которой текстовое поле дает входные значения, сколько дней нужно добавить. И кнопка для расчета последнего дня. Вот логика события кнопки.

  NSDateComponents *dateComponent = [[NSDateComponents alloc] init];
  NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
  [formatter setDateFormat:@"yyyy-mm-dd"];

  NSDate *newDate =  [formatter dateFromString:@"2012-01-01"];

  // add days to current date
  dateComponent.day = [dayTextField.text intValue];

  // get a new date by adding components
  newDate = [[NSCalendar currentCalendar] dateByAddingComponents: dateComponent toDate:newDate options:0];

  [finalDate setText:[NSString stringWithFormat:@"%@", newDate]];

Здесь dayTextField.text - это текст, в котором указано, сколько дней нужно рассчитать. (Например, 125 дней), а finalDate - это метка, отображающая окончательную сгенерированную дату (означает дату через 125 дней после 1 января 2012 г.).

Преимущество этого кода в том, что в любое время вы можете изменить параметр дня начала. Например, для другого требования мне нужно считать свои дни с "31 мая 1999 года", тогда я легко изменю его в одной строке, и тот же код будет работать.

Наслаждайтесь кодированием :)

Ответ 2 · рейтинг 1 · talbright

NSCalendar *gregorian =
   [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSUInteger dayOfYear =
   [gregorian ordinalityOfUnit:NSDayCalendarUnit
    inUnit:NSYearCalendarUnit forDate:[NSDate date]];
[gregorian release];
return dayOfYear;

Возьмите из сообщения: target-c">Как вы вычисляете день года для определенной даты в Objective-C?

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы