计算目标C(iPhone应用程序)中到期日期/时间前90分钟的时间

时间:2011-04-12 19:53:10

标签: objective-c ios4

这是一个完全无声的问题,但我昨天花了2个小时试图让它发挥作用,我显然错过了一些非常基本的东西。

我需要做的是从用户输入日期/时间并重新计算90分钟以获得提醒。

有人可以发布一个示例计算,其中有一个包含用户输入的var和一个接收此计算结果的新var? (所有在Objective C中完成的用于iPhone应用程序)谢谢!

3 个答案:

答案 0 :(得分:2)

我怀疑你可以这样做:

NSDate *alertDate = [userDate dateByAddingTimeInterval:-5400.0];

答案 1 :(得分:1)

我认为这应该有效:

NSDate * alarmDate = [NSDate dateWithTimeInterval:5400 sinceDate:userDefinedDate];
NSDate * now = [NSDate date];   
NSTimeInterval wait = [now timeIntervalSinceDate:alarmDate];

[self performSelector:@selector(callAlarm) withObject:nil afterDelay:fabs(wait)];

虽然我也同意尼克,但是将你的工作添加得更有效率。

答案 2 :(得分:1)

假设您有UIDatePicker,您的目标日期已经在NSDate对象中。如果它来自另一个来源,你可能会在NSDate对象中结束它,可以通过NSDateFormatter或其他方式从字符串开始。

从NSDate对象中,您可以获得相对于某个绝对日期的NSTimeInterval。这是一个C原始类型(在实践中它是double,但显然不会编码依赖于它)你可以直接进行算术运算。所以你可以直接减去90分钟。然后在NSDate上有各种+ dateWithTimeInterval...类方法,允许您从结果中获取日期。