2012-08-07 72 views
0

我想補充STARTDATE結束日期,所以我創建了兩個不同的datecontroller類兩個STARTDATE結束日期如何檢查iphone中的datepicker值?

當我第一次進入時,我的狀態很好,並且以良好的方式保存在數據庫中。但如果我更新,然後我點擊保存消息,然後我得到警告消息塊在我的代碼。我希望該開始日期必須小於或等於結束日期值。

這是我的代碼,它只在我第一次在數據庫表中插入值時工作。 如果我更新並點擊保存按鈕,然後它的cheking條件,並在該值獲取數據庫舊值的開始日期和結束日期如何解決這個問題?

我回來的時候,我得到這個在NSLog

message 2012-08-07 14:21:08.047 People[17111:207] *****:2012-08-06 18:30:00 +0000 
2012-08-07 14:22:54.752 People[17111:207] *****:2012-08-06 18:30:00 +0000 

我的代碼: -

-(IBAction)plusSignTapped:(id)sender 
{ 


    NSComparisonResult result = [firstobj.StartDate compare: firstobj.EndDate]; 
    NSLog(@"*****:%@", firstobj.StartDate); 
    NSLog(@"*****:%@", firstobj.EndDate); 
    if(result == NSOrderedDescending || result==NSOrderedSame) 
    { 
     UIAlertView* alert=[[UIAlertView alloc] initWithTitle:@"test" message:@"End date should be greater than or equal to start date " delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
     [alert show]; 
     [alert release]; 

     return; 
    } 
} 
+0

如何在變量中輸入日期?通過UIDatePicker或在UITextField中手動輸入? – 2012-08-07 09:04:27

+0

from datepicker – Rocky 2012-08-07 09:05:34

+0

我正在通過datepicker添加日期 – Rocky 2012-08-07 09:06:33

回答

0

讓我們的影像,我們有兩個日期和兩個datepickers:

firstDatesecondDate;

firstDatePicker,secondDatePicker;

在你firstDatePicker功能,負責值更改事件必須設置minimumDate的secondDatePicker(也日期值,如果是小於最小日期)

- (void)firstDatePickerDateChanged 
{ 
    firstDate = firstDatePicker.date 
    secondDatePicker.minimumDate = firstDate; 
    if ([secondDatePicker.date firstDate] == NSOrderedAscending) { 
     secondDatePicker.date = [firstDate dateByAddingTimeInterval:24 * 3600]; 
     // we add a day to second date, but you can add any value 
     [secondDatePicker sendActionsForControlEvents:UIControlEventValueChanged]; 
     // you need send value changed message to update your secondDate var    
    } 
} 
0

完成這個任務,這是檢查日期小於或等於日期的替代方法:

NSTimeInterval timeStartDate = [firstobj.StartDate timeIntervalSince1970]; //StartDate convert into time 
NSTimeInterval timeEndDate = [firstobj.EndDate timeIntervalSince1970]; //EndDate convert into time 
if (timeStartDate <= timeEndDate) //Compare StartDatetime with EndDatetime 
{ 
    NSLog(@" timeStartDate less thanORequal to %f timeEndDate :%f", timeStartDate,timeEndDate); 
} 
else 
{ 
    NSLog(@" Date is greater"); 
}