关于ios中日期相关操作的总结(获取当天日期,n天后日期,当天以后一周以内的日期等)

直接上代码

    a,获取n天后日期

 -(NSString *)getNDay:(NSInteger)n{

 NSDate*nowDate = [NSDate date];

 NSDate* theDate;

 if(n!=0){

 

 NSTimeInterval  oneDay = 24*60*60*1;  //1天的长度

 theDate = [nowDate initWithTimeIntervalSinceNow: oneDay*n ];//initWithTimeIntervalSinceNow是从现在往前后推的秒数

 }else{

 

 theDate = nowDate;

 }

 

 NSDateFormatter *date_formatter = [[NSDateFormatter alloc] init];

 [date_formatter setDateFormat:@"MM月dd日"];

 NSString *the_date_str = [date_formatter stringFromDate:theDate];

 return the_date_str;

 }

    b,获取当天日期返回字符串

 -(NSString *)getDate:(NSDate *)date

 {

 NSDateFormatter *format1=[[NSDateFormatter alloc]init];

 [format1 setDateFormat:@"MM月dd日"];

 NSString *str1=[format1 stringFromDate:date];

 return str1;

 }

    c 传入日期返回相对应的周几

 -(NSString *)getweek:(NSDate *)date{

 NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];

 //    NSDate *now;

 NSDateComponents *comps = [[NSDateComponents alloc] init];

 NSInteger unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitWeekday |

 NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;

 //    now=[NSDate date];

 comps = [calendar components:unitFlags fromDate:date];

 NSArray * arrWeek=[NSArray arrayWithObjects:@"周日",@"周一",@"周二",@"周三",@"周四",@"周五",@"周六", nil];

 NSString *str = [NSString stringWithFormat:@"%@",[arrWeek objectAtIndex:[comps weekday] - 1]];

 return str;

 }

d,获取当前日期八天以后的日期


-(NSMutableArray *)latelyEightTime{

    NSMutableArray *eightArr = [[NSMutableArray alloc] init];

    for (int i = 0; i < 7; i ++) {

        //从现在开始的24小时

        NSTimeInterval secondsPerDay = i * 24*60*60;

        NSDate *curDate = [NSDate dateWithTimeIntervalSinceNow:secondsPerDay];

        

        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

        

        [dateFormatter setDateFormat:@"M月d日"];

        NSString *dateStr = [dateFormatter stringFromDate:curDate];//几月几号

        

        NSDateFormatter *weekFormatter = [[NSDateFormatter alloc] init];

     //真机调试会出现问题 添加如下代码:

        NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];

        [weekFormatter setLocale:locale];

        

        [weekFormatter setDateFormat:@"EEEE"];//星期几 @"HH:mm 'on' EEEE MMMM d"];

        NSString *weekStr = [weekFormatter stringFromDate:curDate];

        

        //转换英文为中文

        NSString *chinaStr = [self cTransformFromE:weekStr];

        

        //组合时间

        NSString *strTime = [NSString stringWithFormat:@"%@ %@",dateStr,chinaStr];

        [eightArr addObject:strTime];

    }

    

    return eightArr;

}

-(NSString *)cTransformFromE:(NSString *)theWeek{

    NSString *chinaStr;

    if(theWeek){

        if([theWeek isEqualToString:@"Monday"]){

            chinaStr = @"周一";

        }else if([theWeek isEqualToString:@"Tuesday"]){

            chinaStr = @"周二";

        }else if([theWeek isEqualToString:@"Wednesday"]){

            chinaStr = @"周三";

        }else if([theWeek isEqualToString:@"Thursday"]){

            chinaStr = @"周四";

        }else if([theWeek isEqualToString:@"Friday"]){

            chinaStr = @"周五";

        }else if([theWeek isEqualToString:@"Saturday"]){

            chinaStr = @"周六";

        }else if([theWeek isEqualToString:@"Sunday"]){

            chinaStr = @"周七";

        }

    }

    return chinaStr;

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值