UIDatePicker:帮助将伪代码转换为objc代码

时间:2014-07-04 14:20:40

标签: ios uidatepicker pseudocode

我正在尝试为日期选择器实现一些伪代码。但是我不确定如何添加分钟值来调整NSDate对象。

这是伪代码:

//minTime is an NSDate object
minTime = currentTime + 30mins - (currentTime % 15)

(currentTime % 15)表示用户只能在15分钟的时间间隔内选择,并且必须距离当前的15分钟间隔15分钟。例如,如果是10:50,则用户应该只能从UIDatePicker中选择11:15。如果是10:20,则用户应该只能选择10:45。

我知道如何使用[NSDate date]获取当前时间,但我不知道如何为其添加分数并进行调整。

2 个答案:

答案 0 :(得分:1)

您可以使用以下方法向NSDate添加一些分钟:

NSDate *nowDate = [NSDate date];
NSDate *nowDateAnd2moreMinutes = [nowDate dateByAddingTimeInterval:2*60]; //This add 2 minutes (2 * 60sec) 

更多信息in apple documentation

编辑我写了一个添加分钟的小功能:

+(NSDate) addMinutes:(int) minutes toDate:(NSDate) date{
    return [date dateByAddingTimeInterval:minutes*60];
}

额外奖励:为日期添加分钟和秒数的功能

+(NSDate) addMinutes:(int) minutes andSeconds:(int) sec toDate:(NSDate) date{
    return [date dateByAddingTimeInterval:(minutes*60)+sec];
}

答案 1 :(得分:1)

在处理日期和时间时,处理时间间隔不是一种好习惯。最佳解决方案是使用NSDateComponents添加时间段。

NSDateComponents* dc = [NSDateComponents new];
dc.minutes = 15;

NSDate* newDate = [[NSCalendar currentCalendar] dateByAddingComponents:dc toDate:oldDate options:0];