adicionar NSTimeInterval para NSDate no cacau
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?
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.
}