验证一周的日期

时间:2014-11-26 12:31:10

标签: ios objective-c xcode

我更新鲜,我不知道如何解决以下问题。

我有约会,如果该日期是一周,我想让用户下一步。意味着我想要7天验证。如果日期是在8天之后,则不允许用户下一个。感谢有人解决此问题。

3 个答案:

答案 0 :(得分:4)

此功能检查给定日期是否在当前周。

- (BOOL)isDateInThisWeek:(NSDate *)date
{
    NSDate *today = [NSDate date];

    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
    NSDateComponents *comps = [calendar components:NSCalendarUnitWeekday fromDate:[NSDate date]];
    int weekday = [comps weekday];
    int validDays = 7-weekday;

    comps = [calendar components:NSCalendarUnitDay fromDate:today toDate:date options:0];
    int days = [comps day];

    BOOL inThisWeek = days <= validDays;
    return inThisWeek;
}

首先计算今天的工作日和本周的剩余天数,然后检查今天和给定日期之间的天数是&lt; =剩余天数。

答案 1 :(得分:1)

将最长日期设定为从今天起7天后的日期。

NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [NSDateComponents new];
comps.day = 7;
NSDate *sevenDays = [calendar dateByAddingComponents:comps toDate:[NSDate date] options:0];
dpDob.maximumDate = sevenDays ; 

如果您想添加验证,则可以添加此

 NSDate* dateTodate = [NSDate date];;

 NSTimeInterval distanceBetweenDates = [dateTodate timeIntervalSinceDate:sevenDays];
 double secondsInAnHour = 3600;
 NSInteger hoursBetweenDates = distanceBetweenDates / secondsInAnHour;
 if(hoursBetweenDates>168)
{
  UIAlertView *alert = [[UIAlertView alloc] initWithTitle:GENERAL_Title message:
                                  @"Select a date within 7 days from today" delegate:nil cancelButtonTitle:
                                  @"OK" otherButtonTitles:nil, nil];
  [alert show];

}

答案 2 :(得分:1)