【第22期】观点:IT 行业加班,到底有没有价值?

iOS 获取当前时间以及计算年龄(时间差)

原创 2015年07月08日 09:07:14

获取当前时间

        NSDate *now = [NSDate date];
        NSLog(@”now date is: %@”, now);
    
        NSCalendar *calendar = [NSCalendar currentCalendar];
        NSUInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
        NSDateComponents *dateComponent = [calendar components:unitFlags fromDate:now];
    
        int year = [dateComponent year];
        int month = [dateComponent month];
        int day = [dateComponent day];
        int hour = [dateComponent hour];
        int minute = [dateComponent minute];
        int second = [dateComponent second];
    
        NSLog(@”year is: %d”, year);
        NSLog(@”month is: %d”, month);
        NSLog(@”day is: %d”, day);
        NSLog(@”hour is: %d”, hour);
        NSLog(@”minute is: %d”, minute);
        NSLog(@”second is: %d”, second);

计算年龄

第一种只得出年份差的年龄

    //计算年龄
    NSString *birth = @"1993-10-30";
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd"];
    //生日
    NSDate *birthDay = [dateFormatter dateFromString:birth];
    //当前时间
    NSString *currentDateStr = [dateFormatter stringFromDate:[NSDate date]];
    NSDate *currentDate = [dateFormatter dateFromString:currentDateStr];
    NSLog(@"currentDate %@ birthDay %@",currentDateStr,birth);
    NSTimeInterval time=[currentDate timeIntervalSinceDate:birthDay];
    int age = ((int)time)/(3600*24*365);
    NSLog(@"year %d",age);

第二种得出具体到天的年龄

NSCalendar *calendar = [NSCalendar currentCalendar];//定义一个NSCalendar对象
    
    NSDate *nowDate = [NSDate date];
    
    NSString *birth = @"1900-10-30";
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd"];
    //生日
    NSDate *birthDay = [dateFormatter dateFromString:birth];
    
    //用来得到具体的时差
    unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
    NSDateComponents *date = [calendar components:unitFlags fromDate:birthDay toDate:nowDate options:0];
    
    if([date year] >0)
    {
        NSLog(@"%@",[NSString stringWithFormat:(@"%ld岁%ld月%ld天"),(long)[date year],(long)[date month],(long)[date day]]) ;
    }
    else if([date month] >0)
    {
        NSLog(@"%@",[NSString stringWithFormat:(@"%ld月%ld天"),(long)[date month],(long)[date day]]);
    }
    else if([date day]>0){
        NSLog(@"%@",[NSString stringWithFormat:(@"%ld天"),(long)[date day]]);
    }
    else {
       NSLog(@"0天");
    }


字符串、日期、Int转换

此项参考:http://blog.csdn.net/tt5267621/article/details/7720434

1、字符串转换为日期

NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];//实例化一个NSDateFormatter对象
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//设定时间格式,这里可以设置成自己需要的格式
NSDate *date =[dateFormat dateFromString:@"1980-01-01 00:00:01"];

2、日期转换为字符串

NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];//实例化一个NSDateFormatter对象
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//设定时间格式,这里可以设置成自己需要的格式
NSString *currentDateStr = [dateFormat stringFromDate:[NSDate date]];

3、字符串转int

Convert NSString to int
NSString *aNumberString = @"123";
int i = [aNumberString intValue];

4、int转字符串

Convert int to NSString
int aNumber = 123;
NSString *aString = [NSString stringWithFormat:@"%d", aNumber];


版权声明:本文为博主原创文章,转载请在醒目位置注明原文链接。 举报

相关文章推荐

iOS 获取当前时间以及计算年龄(时间差)

NSDate *now = [NSDate date]; NSLog(@”now date is: %@”, now); NSCalendar *calend...

iOS开发 —— Objective C语言知识点总结

C和OC对比 OC中主要开发在什么平台上的应用程序?  答:可以使用OC开发Mac OS X平台和iOS平台的应用程序 OC中新增关键字大部分是以什么开头?  答:OC中新...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

javascript 动态显示当前时间(系统时间)和指定时间差

最近做流程项目计算流程总耗时用到了动态显示总耗时的时间,就是用流程结束时间减去开始时间差,此时是显示的时间不是动态的,我所说的动态是针对流程没有结束时候显示的时间差是动态的:就是当前时间减去流程开始时间,获得的时间差就是动态显示的。话不多说,直接看下面的demo. 第一步,在myeclipse中创...

iOS 获取当前时间以及计算年龄(时间差)

NSDate *now = [NSDate date]; NSLog(@”now date is: %@”, now); NSCalendar *calend...

iPhone开发--获取当前时间与2001年1月1日的时间差以毫秒为单位

因为程序的需要,要计算两个时间的时间间隔,既时间差,如果用NSDate等方法拿到的时间格式很难进行差值运算(个人觉得),于是想有没有一个方法象java中的那样获取1970年以后的时间,上伟大的stackOverFlow上查找答案 终于找到了, 原文翻译如下: <span style=&qu...

JS获取当前时间并计算时间差

var d,d1;  //获取开始时间  function showTime(){     d = new Date();                                    var...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)