0

我有一个日期选择器。从中选择时间后,我想获得下一个 30 分钟和 1 小时的日期和时间。

我将如何编写一个方法来获取日期和时间,并在该日期时间后的接下来的 30 分钟和 1 小时内以两个 NSDate 的形式返回。

示例:我从日期选择器中选择了下午 1:30 的时间,然后我想获取下一个 30 分钟时间和 1 小时时间并设置时间。

有人可以帮忙吗?

4

3 回答 3

2
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateComponents *components = [NSDateComponents new];
    components.minute = 30;
    components.hour = 1;
    NSDate *date = [calendar dateByAddingComponents:components toDate:< your date > options:0];
于 2013-03-23T07:08:11.843 回答
1

您可以只使用NSDate的 dateByAddingTimeInterval 方法。

例子 :

NSDate *NextDateOneHour = [oldDate dateByAddingTimeInterval:3600];    //3600 second equivalent to 60 mins
NSDate *NextDateHalfAnHour = [oldDate dateByAddingTimeInterval:1800]; //1800 second equivalent to 30 mins
于 2013-03-23T07:02:50.997 回答
0
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setHour:1];

NSDate *afterHour = [gregorian dateByAddingComponents:comps toDate:[NSDate date]  options:0];

[comps setMinute:30];

NSDate *afterHalfHour = [gregorian dateByAddingComponents:comps toDate:[NSDate date]  options:0];
于 2013-03-23T07:07:38.613 回答