你如何确定现在和之间的天数?从现在起90天?

时间:2012-01-16 16:27:05

标签: iphone ios ios4 ios5

因此,作为新手,我已经通过Stackoverflow查看了这个问题,并没有找到类似于我正在寻找的示例。许多例子都关心闰年/秒。我不。我只需要0到90之间的数字。我不关心半天等等。示例:2012年1月1日@ 2359 - 2012年1月2日@ 0001 =我柜台一整天。

我需要的是设定一个日期,随着时间的推移,倒计时显示'originalDate + 90 - 今天的日期'。一旦'originalDate + 90 - 今天的日期'= 0,从那时起只显示0。

我该怎么做?

感谢。

2 个答案:

答案 0 :(得分:2)

有些事情需要研究:

NSDate有一个名为timeIntervalSinceDate的方法。使用此选项可获取接收器与给定日期之间的秒数。

使用NSDateComponents设置“90天后”,这样您就可以配置秒数等等。 Apple文档详细描述了这一点。

您将采取的基本步骤:

  • 将“now”存储为NSDate对象。
  • 从现在起创建一个NSDate对象90天。
  • 比较两者,根据需要将结果存储在NSInteger或double中。
  • 用这个结果做点什么。 (例如,检查它是否大于零。)

答案 1 :(得分:0)

首先从开始日期开始结束

NSTimeInterval ninetyDays = 90*24*60;
NSDate endDate = [NSDate dateWithTimeInterval:ninetyDays sinceDate:originalDate];

然后删除NSDate对象的“time”(小时分,秒)部分:

NSDate *currentDateInDaysPrecision;
[calendar rangeOfUnit:NSDayCalendarUnit startDate:&currentDateInDaysPrecision
             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];

那应该这样做。

修改

我是从another SO answer

学到的