可能重复:
如何计算两个日期之间的差异?
NSDate,比较两个日期
我有两个约会。如何检查它们之间是否有30天的差异?我实际上有一个应用内购买,需要在每购买 30 天后禁用。当用户购买该功能时,日期已保存,因此我需要检查日期。如果 30 天过去了,我需要再次禁用该功能。
可能重复:
如何计算两个日期之间的差异?
NSDate,比较两个日期
我有两个约会。如何检查它们之间是否有30天的差异?我实际上有一个应用内购买,需要在每购买 30 天后禁用。当用户购买该功能时,日期已保存,因此我需要检查日期。如果 30 天过去了,我需要再次禁用该功能。
您可以使用 timeIntervalSince1970 将两个日期转换为秒,然后检查差异是否大于 2592000(30*24*60*60,即 30 天 * 24 小时 * 60 分钟 * 60 秒)。
NSTimeInterval difference = [date1 timeIntervalSince1970] - [date2 timeIntervalSince1970];
if(difference >2592000)
{
//do your stuff here
}
编辑:对于更紧凑的版本,您可以使用- (NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate
NSTimeInterval difference = [date1 timeIntervalSinceDate:date2];
if(difference >2592000)
{
//do your stuff here
}
以下列方式提供开始和结束 NSDate:
NSDate *date_Start;
NSDate *date_End;
NSCalendar *cal=[NSCalendar currentCalendar];
NSDateComponents *components=[cal components:NSDayCalendarUnit fromDate:date_Start toDate:date_End options:0];
int days=[components day];
if(days>30){
//Your code here
}
您可以创建一个从现在起 +30 天的日期:
NSDate *thrityDaysPlus = [[NSDate date] dateByAddingTimeInterval:3600*24*30]
然后只需将其与您保存的日期进行比较
if ([date1 compare:date2] == NSOrderedDescending) {
NSLog(@"date1 is later than date2");
} else if ([date1 compare:date2] == NSOrderedAscending) {
NSLog(@"date1 is earlier than date2");
} else {
NSLog(@"dates are the same");
}