2015-03-25 81 views
1

通過我的應用程序,用戶可以在餐廳訂購特定的食品。事情是,如果用戶想要訂購特定產品,他可以至少6小時爲餐廳提供產品。例如,您是用戶,現在時間是中午12點。在應用程序中,用戶可以通過UIDatepicker選擇DELIVERY的時間。如果用戶選擇06:00 pm之前的時間,一個alert view會生成消息「請給你6小時的時間」 。在這裏,我必須比較系統時間和UIDatepickers時間。我發現了一種方法,但它沒有用。如何將系統日期與iOS中的UIDatePicker日期進行比較?

if ([self.datePicker.date compare:currentdate] == NSOrderedDescending){ 
    NSLog(@"Descending"); 
} 

請幫我...在此先感謝

回答

0

要麼你可以通過

NSDate *date1 = [NSDate date]; 
NSDate *date2 = datePicker.date; 

NSTimeInterval elapsed = [date1 timeIntervalSinceDate:date2]; 

選定的時間比較您還可以設置最小時間6小時後的日期選擇器

NSDate *mydate = [NSDate date]; 
NSTimeInterval secondsInSixHours = 6 * 60 * 60; 
NSDate *dateSixHoursAhead = [mydate dateByAddingTimeInterval:secondsInSixHours]; 
[datePicker setMinimumDate:dateSixHoursAhead]; 
+0

很棒..完美..很感謝你這麼多....... – 2015-03-25 08:37:25

0

使用本

if ([[NSDate date] isEqualToDate: currentdate) { 
NSLog(@"currentDate is equal to currentdate"); 
} 
0

你實際上是在尋找時間差,這裏是代碼:

NSLog(@"please give %@fhrs time for your order",[self.datePicker.date timeIntervalSinceDate:[NSDate date]]); 
0

使用此方法。兩個日期之間做比較的最好方法:

- (void)pickerDateIsSmallerThanCurrent:(NSDate *)checkDate 
    { 
     NSDate* enddate = checkDate; 
     NSDate* currentdate = [NSDate date]; 
     NSTimeInterval distanceBetweenDates = [enddate timeIntervalSinceDate:currentdate]; 
     double secondsInMinute = 60; 
     NSInteger secondsBetweenDates = distanceBetweenDates/secondsInMinute; 

     if (secondsBetweenDates == 0) 
      //both dates are equal 
     else if (secondsBetweenDates < 0) 
      //selected date is smaller than current date 
     else 
      //selected date is greater than current date 
    } 
相關問題