我如何計算今天的小時分鐘和秒鐘爲零的NSTimeInterval?NSTime今天與零時間間隔(午夜)
我知道今天的NSTimeInterval那就是:
NSTimeInterval today = [[NSDate date] timeIntervalSince1970];
,但我怎麼可以重設時間?
我如何計算今天的小時分鐘和秒鐘爲零的NSTimeInterval?NSTime今天與零時間間隔(午夜)
我知道今天的NSTimeInterval那就是:
NSTimeInterval today = [[NSDate date] timeIntervalSince1970];
,但我怎麼可以重設時間?
NSDate *currentDate = [NSDate date];
NSDateComponents *currentDateComponents = [calendar components:NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit fromDate:currentDate];
NSDateComponents *currentDateToMidnight = [[NSDateComponents alloc] init];
[currentDateToMidnight setHour:-[currentDateComponents hour]];
[currentDateToMidnight setMinute:-[currentDateComponents minute]];
[currentDateToMidnight setSecond:-[currentDateComponents second]];
NSDate *midnight = [calendar dateByAddingComponents:currentDateToMidnight toDate:currentDate options:0];
NSTimeInterval todayTimeInterval = [midnight timeIntervalSince1970];
這有點矯枉過正,不是嗎?只需將'currentDateComponents'的小時,分鍾和秒設置爲0,並詢問日曆將會是什麼'NSDate'。 – JustSid
您需要使用NSDateComponents
只得到年,月和今天的日子,那麼你就可以創建他們的日期,這將是在午夜。
一旦你的now
NSTimeInterval
調用以下功能:
inline NSTimeInterval trimTimeInterval(NSTimeInterval interval)
{
static NSTimeInterval const day = 3600 * 24;
return day * floor(interval/day);
}
首先我們計算interval
的整數天量再拿到相同的值回來的時間元素除外。
但請注意,這段代碼不會考慮時區。所以你可能會在5月23日結束,而不是5月24日,格林威治標準時間+ N> 0。
相對於什麼? – Wain
什麼?...我有今天的nstimeinterval,但我想今天設置它的時間00:00:00 ... – Piero