2013-03-23 61 views
0

我有一个日期选择器。从这里选择一段时间后,我想获得下一个30分钟和1小时的日期和时间。获取未来的时间作为NSDate

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

例如:我从选取器中选择了下午1点30分的时间,然后我想在设置时间的情况下取下30分钟和1小时。

任何人都可以帮忙吗?

+0

使用'NSDateComponents'。 – 2013-03-23 07:00:37

+0

'NSDateComponents'对于添加像日或月的间隔很有用,因为这些间隔没有固定的长度。为了增加30分钟,'dateByAddingTimeInterval'应该足够了。 – 2013-03-23 08:16:44

回答

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 
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]; 
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];