NSDate午夜后的第二天

时间:2016-08-19 07:39:49

标签: nsdate

我有一个非常简单的案例,但由于某种原因,我无法找到正确的方法来处理它,因为我在iDev中的“启动”级别。 用户在使用我的应用程序时会有一天的限制。在一定数量的用户操作后,我在NSUserDefaults中设置了限制。 现在我认为它应该是NSDate值,但我不确定。  每次用户请求某些操作时,app都必须检查是否没有限制。如何正确检查? 例如,今天上午9:00用户超出限制,应用程序必须限制午夜期间的任何操作。第二天凌晨0:01检查限制后,它必须是“绿色”。

有点令人困惑,我知道:(

2 个答案:

答案 0 :(得分:0)

要获得第二天的开始,您可以使用带有2个API的NSCalendar类:

首先:获取当前时间的第二天(NSDate):

  

返回表示绝对时间的新NSDate对象   通过将给定组件添加到给定日期来计算。

x <- runif(1000, -5, 5)
y <- runif(1000, -2, 2)
z <- x + y
res <- lm(z ~ x + y)
alpha <- 0.01
num_iters <- 10000
theta <- matrix(c(0,0,0), nrow = 3)
X <- cbind(1, matrix(x), matrix(y))

for (i in 1:num_iters){
    cost <- (X %*% theta - y)
    delta <- t(X) %*% cost / length(y)
    theta <- theta - alpha * delta
}

您的- (NSDate *)dateByAddingComponents:(NSDateComponents *)comps toDate:(NSDate *)date options:(NSCalendarOptions)opts 参数应该只有comps值= 1,例如:

Day

然后让NSDate成为你第二天的第一时刻。

  

返回给定日期的第一个时刻日期

NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:1];

答案 1 :(得分:0)

这是Swift中的解决方案。该函数使用NSDateComponents类将时间设置为第二天的第一分钟:

public class func getTomorrow() -> NSDate {
    let cal = NSCalendar.currentCalendar()
    let today = NSDate()
    let dateComp = cal.components([.Year, .Month, .Day, .Hour, .Minute, .Second], fromDate: today)
    dateComp.day = dateComp.day + 1
    dateComp.hour = 0
    dateComp.minute = 1
    dateComp.second = 0
    return cal.dateFromComponents(dateComp)!
}

我没有检查它是否编译,但它应该没问题。 希望它有所帮助!