Iphone 如何确定从现在到现在的天数&;90天后?
作为一个新手,我已经查看了Stackoverflow关于这个问题的内容,没有找到一个与我正在寻找的类似的例子。许多例子都涉及闰年/秒。我不。我只需要一个介于0和90之间的数字。我不关心半天等等。示例:1月1日2012@23591月2日2012@0001在我的柜台里待了一整天 我需要的是设定一个日期,随着时间的推移,倒计时显示“originalDate+90-今天的日期”。一旦'originalDate+90-今天的日期'=0,从那时起只显示0 我该怎么做Iphone 如何确定从现在到现在的天数&;90天后?,iphone,ios,ios4,ios5,Iphone,Ios,Ios4,Ios5,作为一个新手,我已经查看了Stackoverflow关于这个问题的内容,没有找到一个与我正在寻找的类似的例子。许多例子都涉及闰年/秒。我不。我只需要一个介于0和90之间的数字。我不关心半天等等。示例:1月1日2012@23591月2日2012@0001在我的柜台里待了一整天 我需要的是设定一个日期,随着时间的推移,倒计时显示“originalDate+90-今天的日期”。一旦'originalDate+90-今天的日期'=0,从那时起只显示0 我该怎么做 谢谢。有些事情需要研究: NSDate有
谢谢。有些事情需要研究: NSDate有一个名为TimeIntervalnceDate的方法。使用此选项可获得接收器与给定日期之间的秒数 使用NSDateComponents设置“从现在开始的90天”,这样您就可以配置秒数以及所有这些。苹果的文档对此进行了详细的描述 您将采取的基本步骤:
- 将“now”存储为NSDate对象李>
- 从现在起90天内创建NSDate对象李>
- 比较两者,根据需要将结果存储在NSInteger或double中李>
- 用这个结果做点什么。(例如,检查其是否大于零。)
NSTimeInterval ninetyDays = 90*24*60;
NSDate endDate = [NSDate dateWithTimeInterval:ninetyDays sinceDate:originalDate];
然后删除NSDate对象的“时间”(小时、分钟、秒)部分:
NSDate *currentDateInDaysPrecision;
[calendar rangeOfUnit:NSDayCalendarUnit startDate:¤tDateInDaysPrecision
interval:NULL forDate:[NSDate date]];
NSDate *endDateInDaysPrecision;
[calendar rangeOfUnit:NSDayCalendarUnit startDate:&endDateInDaysPrecision
interval:NULL forDate:endDate];
现在,您可以使用它来计算天数差异:
// calculate the difference in days
NSDateComponents *difference = [calendar components:NSDayCalendarUnit
fromDate:currentDateInDaysPrecision
toDate:endDateInDaysPrecision
options:0];
NSInteger differenceInDays = [difference day];
这应该可以做到
编辑:
我从中学到了这一点,你可以参考-,这里也只计算天数。你让我朝着正确的方向思考&我发现了-谢谢你的推动!NSDate*expireDate=[[NSUserDefaults standardUserDefaults]objectForKey:@“expireDate”];如果(expireDate==nil){expireDate=[NSDate日期];}NSDate*now=[NSDate日期];NSInteger count=[现在日期之前:过期日期];如果(计算)