How to compare current date to previous date in iphone?

人走茶凉 提交于 2019-12-18 21:56:07

问题


I would like to compare the current date with another date, and if that is date is earlier than the current date, then I should stop the next action. How can I do this?

I have todays date in yyyy-MM-dd format. I need to check this condition

if([displaydate text]<currentdate)
{
    //stop next action 
}

Here if displaydate is less than todays date then it has to enter that condition.


回答1:


NSDate *today = [NSDate date]; // it will give you current date
NSDate *newDate = [dateFormatter dateWithString:@"xxxxxx"]; // your date 

NSComparisonResult result; 
//has three possible values: NSOrderedSame,NSOrderedDescending, NSOrderedAscending

result = [today compare:newDate]; // comparing two dates

if(result==NSOrderedAscending)
    NSLog(@"today is less");
else if(result==NSOrderedDescending)
    NSLog(@"newDate is less");
else
    NSLog(@"Both dates are same");

got your solution from this answer How to compare two dates in Objective-C




回答2:


Alternative to @NNitin Gohel's answer.

Compare using NSTimeInterval ie NSDate timeIntervalSince1970:

NSTimeInterval *todayTimeInterval = [[NSDate date] timeIntervalSince1970];
NSTimeInterval *previousTimeInterval = [previousdate timeIntervalSince1970];

if(previousTimeInterval < todayTimeInterval)
   //prevous date is less than today
else if (previousTimeInterval == todayTimeInterval)
   //both date are equal
else 
   //prevous date is greater than today



回答3:


Some methods of NSDate class are:

  1. isEarlierThanDate. // using this method you can find out the date is previous or not..
  2. isLaterThanDate
  3. minutesAfterDate.
  4. minutesBeforeDate. etc..

also see this link with many methods of NSDate in iPhone SDK..

how-to-real-world-dates-with-the-iphone-sdk

Update

//Current Date
    NSDate *date = [NSDate date];
    NSDateFormatter *formatter = nil;
    formatter=[[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy-MM-dd"];

use this bellow method for convert NSString date to NSDate format just paste this method in your.m file

- (NSDate *)convertStringToDate:(NSString *) date {
NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
NSDate *nowDate = [[[NSDate alloc] init] autorelease];
[formatter setDateFormat:@"yyyy-MM-dd"];
// NSLog(@"date============================>>>>>>>>>>>>>>> : %@", date);
date = [date stringByReplacingOccurrencesOfString:@"+0000" withString:@""];
nowDate = [formatter dateFromString:date];
// NSLog(@"date============================>>>>>>>>>>>>>>> : %@", nowDate);
return nowDate;
}

after that when you want to use it just use like bellow..

NSDate *tempDate2 = [self convertStringToDate:yourStringDate];

and then try to compare like this..

if (tempDate2 > nowDate)



回答4:


You can have a closer look at this Tutorial about NSDateFormatter and when you have your NSDate object you can compare it to another NSDate and get an NSTimeInterval which is the difference in seconds.

NSDate *nowDate = [NSDate date];
NSTimeInterval interval = [nowDate timeIntervalSinceDate:pastDate];


来源:https://stackoverflow.com/questions/13229142/how-to-compare-current-date-to-previous-date-in-iphone

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!