Eu tenho um NSDate
que devo comparar com os outros dois NSDate
e tento com NSOrderAscending
e NSOrderDescending
mas se minha data for igual nas outras duas datas?
Exemplo: se eu tiver um myDate = 24/05/2011
e outros dois que são um = 24/05/2011
e dois, o 24/05/2011
que posso usar?
objective-c
ios
nsdate
cyclingIsBetter
fonte
fonte
Respostas:
De acordo com a documentação da Apple de
NSDate compare:
Em outras palavras:
Observe que pode ser mais fácil em seu caso particular ler e escrever isto:
Consulte a documentação da Apple sobre este .
fonte
NSDateComponents
Depois de pesquisar muito o stackoverflow e a web, cheguei à conclusão de que a melhor maneira de fazer isso é:
Você pode alterá-lo para a diferença entre as horas também.
Aproveitar!
Editar 1
Se você quiser comparar a data com o formato de dd / MM / aaaa apenas, você precisa adicionar as linhas abaixo entre
NSDate* currentdate = [NSDate date];
&&NSTimeInterval distance
fonte
Suponho que você esteja perguntando qual é o valor de retorno na função de comparação.
Se as datas forem iguais, retornar
NSOrderedSame
Se ascendente (2º argumento> 1º argumento) retornar
NSOrderedAscending
Se for decrescente (2º argumento <1º argumento), retorne
NSOrderedDescending
fonte
Não sei exatamente se você perguntou isso, mas se você deseja apenas comparar o componente de data de um NSDate, você deve usar NSCalendar e NSDateComponents para remover o componente de tempo.
Algo assim deve funcionar como uma categoria para NSDate:
fonte
NSDate
na verdade, representa um intervalo de tempo em segundos desde uma data de referência (primeiro de janeiro de 2000 UTC, eu acho). Internamente, um número de ponto flutuante de precisão dupla é usado para que duas datas arbitrárias sejam altamente improváveis de serem comparadas, mesmo que sejam no mesmo dia. Se você quiser ver se uma determinada data cai em um determinado dia, você provavelmente precisará usarNSDateComponents
. por exemplofonte
Verifique a função a seguir para comparação de datas, antes de tudo, crie dois objetos NSDate e passe para a função: Adicione as linhas de código abaixo em viewDidload ou de acordo com seu cenário.
aqui está a função
Basta alterar a data e testar a função acima :)
fonte