1

我想添加startdateenddate,所以我为 startdate 和 enddate 创建了两个不同datecontroller

当我第一次进入时,我的状况良好,并且也以良好的方式保存在数据库中。但是,如果我更新然后单击保存消息,那么我会在我的代码中收到警报消息块。我希望开始日期必须小于或等于结束日期值。

这是我的代码,它仅在我第一次在数据库表中插入值时才起作用。如果我更新并单击保存按钮,那么它的检查条件和在该值中获取数据库旧值开始日期和结束日期如何解决这个问题?

当我回来时,我穿上这个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;   
    } 
}
4

2 回答 2

0

让我们想象一下我们有两个日期和两个日期选择器:

第一日期第二日期

第一个日期选择器第二个日期选择器

在负责值更改事件的firstDatePicker函数中,您必须设置 secondDatePicker 的minimumDate(以及日期值,如果它小于最小日期)

- (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            
    }
}
于 2012-08-07T09:16:13.337 回答
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");
}
于 2012-08-07T09:31:05.353 回答