2012-07-09 29 views

回答

14
NSDate *today = [NSDate date]; 
NSCalendar *calendar = [NSCalendar currentCalendar]; 
NSCalendarUnit unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit; 
NSDateComponents *dateComponents = [calendar components:unitFlags fromDate:today]; 
NSRange days = [calendar rangeOfUnit:NSDayCalendarUnit 
         inUnit:NSMonthCalendarUnit 
         forDate:today]; 

來生成隨機數,使用

int r = arc4random() % days.length; 

,然後創建一個日期

[dateComponents setDay:r]; 
NSDate *startDate = [calendar dateFromComponents:dateComponents]; 

希望這有助於:)

+0

我正要提出你所做的編輯(重新:組件和創建實際日期......)+1! – 2012-07-09 04:54:56

+0

請注意,爲了更好地分配random_uniform()應該被使用。看到這個評論的更多細節:http://stackoverflow.com/a/7082580/751268 – 2012-07-09 04:56:20

+0

好吧,這是一個很好的。但是,請您在'[c dateFromComponents:dateComponents];' – 2012-07-09 05:01:08

相關問題