Pergunta

Eu tenho um NSDate que representa um momento específico. O formato dessa data é hhmmss. Eu quero adicionar um valor NSInterval (especificado em segundos) para que o valor do tempo.

Exemplo:

NSDate =         123000
NSTimeInterval = 3600

Added together = 133000

Qual é a melhor maneira de fazer isso?

Foi útil?

Solução

Você já viu o Datas e temas de programação vezes para Cacau manual?

Basicamente, você precisa converter o seu tempo em um NSDate. Para converter uma string para uma data que você usar a classe NSDateFormatter ou talvez NSDateComponents se você já sabe as horas, minutos e segundos.

Seu NSTimeInterval é apenas um duplo (ou seja, 3600.0).

Em seguida, você usar o método dateByAddingTimeInterval de NSDate para adicionar o número de segundos para o tempo.

NSDate* newDate = [oldDate dateByAddingTimeInterval:3600.0];

Você pode então usar NSDateFormatter ou NSDateComponents para obter o novo tempo de volta novamente.

Outras dicas

addTimeInterval agora está obsoleta. Tente usar dateByAddingTimeInterval .

// This will set the time when your view appears it will also
// set the time if you want to retrieve from it.
-(void)viewDidAppear:(BOOL)animated
{
     //Create todays date
     NSDate *duedate = [NSDate date];
     //Add how ever many days you could write 86400*numbe_of_days days 86400/24 for an hour
     //Then simply reassign the variable or use a different one.
     duedate = [duedate dateByAddingTimeInterval:86400];  //I add one day
     [datePicker setDate:duedate animated:YES]; //Animate yes will show your pickers moving
     [datePicker setMinimumDate:duedate]; //Set minimum date.
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top