一个简单的计算获得的日期与现在的日期差

-(NSString *)getDate:(NSString *)str
{
    NSString *date = [[NSString alloc]init];
    int day = (int)[self getWeak:str];
    if (day>0) {
        if (day>7) {
            NSArray *arr = [str componentsSeparatedByString:@"-"];
            NSString *pMon = [arr objectAtIndex:1];
            NSString *pDay = [arr objectAtIndex:2];
            int mon = [pMon intValue]-1;
            NSArray *monArr = @[@"一月",@"二月",@"三月",@"四月",@"五月",@"六月",@"七月",@"八月",@"九月",@"十月",@"十一月",@"十二月"];
            date = [NSString stringWithFormat:@"%@\n%@",pDay,[monArr objectAtIndex:mon]];
        }
        else{
            NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
            dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh-CN"];
            [dateFormatter setDateFormat: @"yyyy.MM.dd.EEEE"];
            NSDate *today = [NSDate date];
            NSString *st = [dateFormatter stringFromDate:today];
            NSArray *arr = [st componentsSeparatedByString:@"."];
            NSString *pWeek = [arr objectAtIndex:3];
            
            NSArray *arr1 = @[@"星期一",@"星期二",@"星期三",@"星期四",@"星期五",@"星期六",@"星期日"];
            NSArray *arr2 = @[@"周一",@"周二",@"周三",@"周四",@"周五",@"周六",@"周日"];
            NSArray *arr3 = @[@"下周一",@"下周二",@"下周三",@"下周四",@"下周五",@"下周六",@"下周日"];
            
            for (int i=0; i<[arr1 count]; i++) {
                int a = 0;
                if ([pWeek isEqualToString:[arr1 objectAtIndex:i]]) {
                    a = i;
                    int dd = a+day;
                    if (day==0) {
                        date = @"今天";
                    }else if (day==1){
                        date = @"明天";
                    }else if (dd < 7) {
                        date = [arr2 objectAtIndex:dd];
                    }else if (dd >= 7 && dd<14){
                        int w = dd%7;
                        date = [arr3 objectAtIndex:w];
                    }
                }
            }
        }
    }else{
        NSArray *arr = [str componentsSeparatedByString:@"-"];
        NSString *pMon = [arr objectAtIndex:1];
        NSString *pDay = [arr objectAtIndex:2];
        int mon = [pMon intValue]-1;
        NSArray *monArr = @[@"一月",@"二月",@"三月",@"四月",@"五月",@"六月",@"七月",@"八月",@"九月",@"十月",@"十一月",@"十二月"];
        date = [NSString stringWithFormat:@"%@\n%@",pDay,[monArr objectAtIndex:mon]];
    }
    return date;
}

-(NSInteger)getWeak:(NSString *)time
{
    NSDate *today = [NSDate date];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat: @"yyyy-MM-dd"];
    NSString *st = [dateFormatter stringFromDate:today];
    
    NSDate *staDate = [dateFormatter dateFromString:st];
    
    NSDateFormatter *dateFor = [[NSDateFormatter alloc] init];
    [dateFor setDateFormat: @"yyyy-MM-dd"];
    NSDate *endDate =[dateFor dateFromString:time];
    
    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    
    NSUInteger unitFlags = NSMonthCalendarUnit | NSDayCalendarUnit;
    
    NSDateComponents *components = [gregorian components:unitFlags fromDate:staDate toDate:endDate options:0];
    
    NSInteger days = [components day];
    return days;
}

写的可能有些负责和啰嗦

getDate 这个方法中,传入的日期格式为 yyyy-MM-dd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值