2015-03-25 84 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 
    } 
相关问题