У меня есть , NSDate
что я должен сравнить с двумя другими , NSDate
и я стараюсь с NSOrderAscending
и , NSOrderDescending
но если моя дата ровно в двух других дат?
Пример: если у меня есть a myDate = 24/05/2011
и два других, которые равны one = 24/05/2011
и two, 24/05/2011
что я могу использовать?
objective-c
ios
nsdate
ВелоспортIsBetter
источник
источник
Ответы:
Согласно документации Apple
NSDate compare:
Другими словами:
Обратите внимание, что в вашем конкретном случае может быть проще прочитать и написать это:
См. Документацию Apple об этом .
источник
NSDateComponents
После долгих поисков stackoverflow и Интернета я пришел к выводу, что лучший способ сделать это так:
Вы также можете изменить это на разницу между часами.
Наслаждайтесь!
Редактировать 1
Если вы хотите сравнить дату только с форматом dd / MM / yyyy, вам нужно добавить строки ниже между
NSDate* currentdate = [NSDate date];
&&NSTimeInterval distance
источник
Я так понимаю, вы спрашиваете, какое возвращаемое значение имеет функция сравнения.
Если даты совпадают, возвращается
NSOrderedSame
Если по возрастанию (2-й аргумент> 1-й аргумент) вернуть
NSOrderedAscending
Если по убыванию (2-й аргумент <1-й аргумент) вернуть
NSOrderedDescending
источник
Я не знаю точно, спрашивали ли вы об этом, но если вы хотите сравнить только компонент даты в NSDate, вы должны использовать NSCalendar и NSDateComponents, чтобы удалить компонент времени.
Что-то вроде этого должно работать как категория для NSDate:
источник
NSDate
на самом деле представляет собой временной интервал в секундах с даты отсчета (я думаю, 1 января 2000 года по Гринвичу). Внутри используется число с плавающей запятой двойной точности, поэтому маловероятно, что две произвольные даты будут сравниваться как равные, даже если они находятся в один и тот же день. Если вы хотите узнать, приходится ли конкретная дата на конкретный день, вам, вероятно, нужно использоватьNSDateComponents
. напримеристочник
Проверьте следующую функцию для сравнения дат. Сначала создайте два объекта NSDate и перейдите к функции: Добавьте следующие строки кода в viewDidload или в соответствии с вашим сценарием.
вот функция
Просто измените дату и проверьте функцию выше :)
источник