NSDate 第二天午夜后
NSDate Next day after midnight
我有一个非常简单的案例,但由于某些原因我无法找到正确的方法来处理它,因为我在 iDev 的 "starter" 水平。
用户在使用我的应用程序期间会有一天的一些限制。在一定数量的用户操作之后,我在 NSUserDefaults 中设置了限制。
现在我认为它应该是 NSDate 值,但我不确定。
每次用户请求某些操作时,应用程序都必须检查是否没有限制。如何正确检查?
例如,今天上午 9:00 用户超出了限制,应用程序必须限制午夜期间的任何操作。检查限制后的第二天上午 0:01,它必须是 "green"。
有点混乱,我知道:(
要获取第二天的开始时间,您可以将 NSCalendar class 与 2 个 API 一起使用:
首先:获取当前时间的第二天 (NSDate):
Returns a new NSDate object representing the absolute time
calculated by adding given components to a given date.
- (NSDate *)dateByAddingComponents:(NSDateComponents *)comps
toDate:(NSDate *)date
options:(NSCalendarOptions)opts
您的 comps
参数应该只有 Day
值 = 1,例如:
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:1];
然后在第二天的第一刻获取 NSDate 礼物。
Returns the first moment date of a given date
- (NSDate *)startOfDayForDate:(NSDate *)date
这是Swift中的解决方案。该函数使用 NSDateComponents class:
将时间设置为第二天的第一分钟
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)!
}
我还没有检查它是否编译,但应该没问题。
希望对您有所帮助!
我有一个非常简单的案例,但由于某些原因我无法找到正确的方法来处理它,因为我在 iDev 的 "starter" 水平。 用户在使用我的应用程序期间会有一天的一些限制。在一定数量的用户操作之后,我在 NSUserDefaults 中设置了限制。 现在我认为它应该是 NSDate 值,但我不确定。 每次用户请求某些操作时,应用程序都必须检查是否没有限制。如何正确检查? 例如,今天上午 9:00 用户超出了限制,应用程序必须限制午夜期间的任何操作。检查限制后的第二天上午 0:01,它必须是 "green"。
有点混乱,我知道:(
要获取第二天的开始时间,您可以将 NSCalendar class 与 2 个 API 一起使用:
首先:获取当前时间的第二天 (NSDate):
Returns a new NSDate object representing the absolute time calculated by adding given components to a given date.
- (NSDate *)dateByAddingComponents:(NSDateComponents *)comps
toDate:(NSDate *)date
options:(NSCalendarOptions)opts
您的 comps
参数应该只有 Day
值 = 1,例如:
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:1];
然后在第二天的第一刻获取 NSDate 礼物。
Returns the first moment date of a given date
- (NSDate *)startOfDayForDate:(NSDate *)date
这是Swift中的解决方案。该函数使用 NSDateComponents class:
将时间设置为第二天的第一分钟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)!
}
我还没有检查它是否编译,但应该没问题。 希望对您有所帮助!