有关日期的一些判断,逻辑

来源:互联网 发布:php常用的谷歌插件 编辑:程序博客网 时间:2024/06/08 18:11

1.获取现在的日期

    NSDate *nowDate = [NSDate date];    NSDateFormatter *format = [[NSDateFormatter alloc] init];    format.dateFormat = @"YYYY年MM月dd日 HH:mm:ss";    NSString *timeStr = [format stringFromDate:nowDate];

2.计算两个日期之间相差几天

eg:inDate=2015-10-01   outDate=2015-10-10  day=9;

    NSString *days = [self getDaysStar:inDate andEnd:outDate];

方法

- (NSString *)getDaysStar:(NSString *)starDay andEnd:(NSString *)endDay{        NSString *days;        int checkInYear = [[starDay substringToIndex:4] intValue];    int checkInM = [[starDay substringWithRange:NSMakeRange(5, 2)] intValue];    int checkInD = [[starDay substringWithRange:NSMakeRange(8, 2)] intValue];    int checkOutYear = [[endDay substringToIndex:4] intValue];    int checkOutM = [[endDay substringWithRange:NSMakeRange(5, 2)] intValue];    int checkOutD = [[endDay substringWithRange:NSMakeRange(8, 2)] intValue];        int checkInDays;    int checkOutDays;        if (checkInYear == checkOutYear) {                if (checkInYear%4==0 && checkInYear %100!=0) {                        if (checkInM == 1) {                checkInDays = checkInD;            }else if (checkInM == 2) {                checkInDays = checkInD + 31;            }else if (checkInM == 3) {                checkInDays = checkInD + 60;            }else if (checkInM == 4) {                checkInDays = checkInD + 91;            }else if (checkInM == 5) {                checkInDays = checkInD + 121;            }else if (checkInM == 6) {                checkInDays = checkInD + 152;            }else if (checkInM == 7) {                checkInDays = checkInD + 182;            }else if (checkInM == 8) {                checkInDays = checkInD + 213;            }else if (checkInM == 9) {                checkInDays = checkInD + 244;            }else if (checkInM == 10) {                checkInDays = checkInD + 274;            }else if (checkInM == 11) {                checkInDays = checkInD + 305;            }else if (checkInM == 12) {                checkInDays = checkInD + 335;            }                        if (checkOutM == 1) {                checkOutDays = checkOutD;            }else if (checkOutM == 2) {                checkOutDays = checkOutD + 31;            }else if (checkOutM == 3) {                checkOutDays = checkOutD + 60;            }else if (checkOutM == 4) {                checkOutDays = checkOutD + 91;            }else if (checkOutM == 5) {                checkOutDays = checkOutD + 121;            }else if (checkOutM == 6) {                checkOutDays = checkOutD + 152;            }else if (checkOutM == 7) {                checkOutDays = checkOutD + 182;            }else if (checkOutM == 8) {                checkOutDays = checkOutD + 213;            }else if (checkOutM == 9) {                checkOutDays = checkOutD + 244;            }else if (checkOutM == 10) {                checkOutDays = checkOutD + 274;            }else if (checkOutM == 11) {                checkOutDays = checkOutD + 305;            }else if (checkOutM == 12) {                checkOutDays = checkOutD + 335;            }                    }else {                        if (checkInM == 1) {                checkInDays = checkInD;            }else if (checkInM == 2) {                checkInDays = checkInD + 31;            }else if (checkInM == 3) {                checkInDays = checkInD + 59;            }else if (checkInM == 4) {                checkInDays = checkInD + 90;            }else if (checkInM == 5) {                checkInDays = checkInD + 120;            }else if (checkInM == 6) {                checkInDays = checkInD + 151;            }else if (checkInM == 7) {                checkInDays = checkInD + 181;            }else if (checkInM == 8) {                checkInDays = checkInD + 212;            }else if (checkInM == 9) {                checkInDays = checkInD + 243;            }else if (checkInM == 10) {                checkInDays = checkInD + 273;            }else if (checkInM == 11) {                checkInDays = checkInD + 304;            }else if (checkInM == 12) {                checkInDays = checkInD + 334;            }                        if (checkOutM == 1) {                checkOutDays = checkOutD;            }else if (checkOutM == 2) {                checkOutDays = checkOutD + 31;            }else if (checkOutM == 3) {                checkOutDays = checkOutD + 59;            }else if (checkOutM == 4) {                checkOutDays = checkOutD + 90;            }else if (checkOutM == 5) {                checkOutDays = checkOutD + 120;            }else if (checkOutM == 6) {                checkOutDays = checkOutD + 151;            }else if (checkOutM == 7) {                checkOutDays = checkOutD + 181;            }else if (checkOutM == 8) {                checkOutDays = checkOutD + 212;            }else if (checkOutM == 9) {                checkOutDays = checkOutD + 243;            }else if (checkOutM == 10) {                checkOutDays = checkOutD + 273;            }else if (checkOutM == 11) {                checkOutDays = checkOutD + 304;            }else if (checkOutM == 12) {                checkOutDays = checkOutD + 334;            }                    }                days = [NSString stringWithFormat:@"%d",checkOutDays - checkInDays];            }        if (checkInYear != checkOutYear) {                if (checkInYear%4==0 && checkInYear %100!=0) {                        if (checkInM == 1) {                checkInDays = checkInD;            }else if (checkInM == 2) {                checkInDays = checkInD + 31;            }else if (checkInM == 3) {                checkInDays = checkInD + 60;            }else if (checkInM == 4) {                checkInDays = checkInD + 91;            }else if (checkInM == 5) {                checkInDays = checkInD + 121;            }else if (checkInM == 6) {                checkInDays = checkInD + 152;            }else if (checkInM == 7) {                checkInDays = checkInD + 182;            }else if (checkInM == 8) {                checkInDays = checkInD + 213;            }else if (checkInM == 9) {                checkInDays = checkInD + 244;            }else if (checkInM == 10) {                checkInDays = checkInD + 274;            }else if (checkInM == 11) {                checkInDays = checkInD + 305;            }else if (checkInM == 12) {                checkInDays = checkInD + 335;            }            checkInDays = 366 - checkInDays;                    }else {                        if (checkInM == 1) {                checkInDays = checkInD;            }else if (checkInM == 2) {                checkInDays = checkInD + 31;            }else if (checkInM == 3) {                checkInDays = checkInD + 59;            }else if (checkInM == 4) {                checkInDays = checkInD + 90;            }else if (checkInM == 5) {                checkInDays = checkInD + 120;            }else if (checkInM == 6) {                checkInDays = checkInD + 151;            }else if (checkInM == 7) {                checkInDays = checkInD + 181;            }else if (checkInM == 8) {                checkInDays = checkInD + 212;            }else if (checkInM == 9) {                checkInDays = checkInD + 243;            }else if (checkInM == 10) {                checkInDays = checkInD + 273;            }else if (checkInM == 11) {                checkInDays = checkInD + 304;            }else if (checkInM == 12) {                checkInDays = checkInD + 334;            }            checkInDays = 365 - checkInDays;                    }                if (checkOutYear%4==0 && checkOutYear%100!=0) {                        if (checkOutM == 1) {                checkOutDays = checkOutD;            }else if (checkOutM == 2) {                checkOutDays = checkOutD + 31;            }else if (checkOutM == 3) {                checkOutDays = checkOutD + 60;            }else if (checkOutM == 4) {                checkOutDays = checkOutD + 91;            }else if (checkOutM == 5) {                checkOutDays = checkOutD + 121;            }else if (checkOutM == 6) {                checkOutDays = checkOutD + 152;            }else if (checkOutM == 7) {                checkOutDays = checkOutD + 182;            }else if (checkOutM == 8) {                checkOutDays = checkOutD + 213;            }else if (checkOutM == 9) {                checkOutDays = checkOutD + 244;            }else if (checkOutM == 10) {                checkOutDays = checkOutD + 274;            }else if (checkOutM == 11) {                checkOutDays = checkOutD + 305;            }else if (checkOutM == 12) {                checkOutDays = checkOutD + 335;            }                        //            checkOutDays = 366 - checkOutDays;                    }else {                        if (checkOutM == 1) {                checkOutDays = checkOutD;            }else if (checkOutM == 2) {                checkOutDays = checkOutD + 31;            }else if (checkOutM == 3) {                checkOutDays = checkOutD + 59;            }else if (checkOutM == 4) {                checkOutDays = checkOutD + 90;            }else if (checkOutM == 5) {                checkOutDays = checkOutD + 120;            }else if (checkOutM == 6) {                checkOutDays = checkOutD + 151;            }else if (checkOutM == 7) {                checkOutDays = checkOutD + 181;            }else if (checkOutM == 8) {                checkOutDays = checkOutD + 212;            }else if (checkOutM == 9) {                checkOutDays = checkOutD + 243;            }else if (checkOutM == 10) {                checkOutDays = checkOutD + 273;            }else if (checkOutM == 11) {                checkOutDays = checkOutD + 304;            }else if (checkOutM == 12) {                checkOutDays = checkOutD + 334;            }                        //            checkOutDays = 365 - checkOutDays;                    }                days = [NSString stringWithFormat:@"%d",checkInDays + checkOutDays];            }        return days;}


3.计算日期是星期几

传进去的string =2014-02-01

- (NSString *)weekday:(NSString *)string{    NSDateFormatter * formatter = [[NSDateFormatter alloc] init];    [formatter setDateFormat:@"yyyy-MM-dd"];    NSDate *date = [formatter dateFromString:string];        NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];    NSDateComponents *comps = nil;    NSInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit |    NSDayCalendarUnit | NSWeekdayCalendarUnit |    NSHourCalendarUnit |NSMinuteCalendarUnit |    NSSecondCalendarUnit;    comps = [calendar components:unitFlags fromDate:date];        NSInteger week = [comps weekday];    NSString *w;    if (week == 7) {        w = @"星期六";    }    else if (week == 1) {        w = @"星期日";    }    else if (week == 2) {        w = @"星期一";    }    else if (week == 3) {        w = @"星期二";    }    else if (week == 4) {        w = @"星期三";    }    else if (week == 5) {        w = @"星期四";    }    else if (week == 6) {        w = @"星期五";    }    return w;}



0 0
原创粉丝点击