Используя DateComponents и Date, вы получите его, добавив отрицательное количество минут и одного часа к указанной дате.
Swift3 (как расширение):
extension Date {
public var nextHour: Date {
let calendar = Calendar.current
let minutes = calendar.component(.minute, from: self)
let components = DateComponents(hour: 1, minute: -minutes)
return calendar.date(byAdding: components, to: self) ?? self
}
}
Используйте с let nextHourDate = myDate.nextHour
См. Apple Руководство по программированию даты и времени для справки.
=============================================== ============================
ObjectiveC (как статический метод):
+ (NSDate *)nextHourDate:(NSDate *)date{
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:NSMinuteCalendarUnit|NSHourCalendarUnit fromDate:date];
components.minute = -components.minute;
components.hour = 1;
return [calendar dateByAddingComponents:components toDate:date options:0];
}
И назовите это с помощью:
[YourClass nextHourDate:yourDate];