根据用户生日,得到相应的年龄,星座和生肖。有的项目中可能会用到,贴出来共享。

得到年龄,这个很简单了:

- (void)getAgeWith:(NSDate*)birthday{

    //日历
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; NSUInteger unitFlags = NSCalendarUnitYear; NSDateComponents *components = [gregorian components:unitFlags fromDate:birthday toDate:[NSDate date] options:]; self.age.text = [NSString stringWithFormat:@"%ld岁了",[components year]+];
}

根据月日得到星座:

//得到星座的算法
-(NSString *)getAstroWithMonth:(NSInteger)m day:(NSInteger)d{ NSString *astroString = @"魔羯水瓶双鱼白羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯"; NSString *astroFormat = @""; NSString *result; if (m<||m>||d<||d>){ return @"错误日期格式!"; } if(m== && d>) { return @"错误日期格式!!"; }else if(m== || m== || m== || m==) { if (d>) { return @"错误日期格式!!!"; } } result=[NSString stringWithFormat:@"%@",[astroString substringWithRange:NSMakeRange(m*-(d < [[astroFormat substringWithRange:NSMakeRange((m-), )] intValue] - (-))*,)]]; return [result stringByAppendingString:@"座"]; }

根据年份得到生肖:

-(NSString *)getZodiacWithYear:(NSInteger)y{
if (y <) {
return @"错误日期格式!!!";
} NSString *zodiacString = @"鼠牛虎兔龙蛇马羊猴鸡狗猪"; NSRange range = NSMakeRange ((y+)%-, ); NSString* result = [zodiacString substringWithRange:range]; return [result stringByAppendingString:@"年"]; }

写了一个demo,需要的去这里下载:https://github.com/wangdachui/WTZodiacSigns

iOS 根据生日得到生肖,星座,年龄的算法的更多相关文章

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

    获取当前时间 NSDate *now = [NSDate date]; NSLog(@"now date is: %@", now); NSCalendar *calendar = ...

  2. iOS根据获取的月和日星座名称

    /** * 依据月和日的下标获取星座名 * * @param monthIndex 月的下标 * @param dayIndex 日的下标 * * @return 星座名 */ - (NSString ...

  3. Excel自动从身份证中提取生日、性别、年龄

    现在学生的身份证号已经全部都是18位的新一代身份证了,里面的数字都是有规律的.前6位数字是户籍所在地的代码,7-14位就是出生日期.第17位“2”代表的是性别,偶数为女性,奇数为男性.我们要做的就是把 ...

  4. JS 识别生日、性别、年龄

    <script> function IdCard(UUserCard,num){ if(num==1){ //获取出生日期 birth=UUserCard.substring(6, 10) ...

  5. SQL 根据生日和日期计算年龄

    FLOOR(datediff(DY,p.Dob,o.RegisterTime)/365

  6. 【pandas】生日转年龄

    数据挖掘比赛中,获得的数据中可能有个人的生日,在数据分析中并不需要生日,而是需要年龄.不同年龄会呈现不同的状态,比如收入.健康.居住条件等,年龄能够很好的把不同样本的差异性进行大范围的划分.下面讲述如 ...

  7. iOS上new Date异常解决办法

    最近有一个项目要实现使用Angluar写一个简历模板, 用户输入姓名/生日/简介...等内容, 然后生成一份在线的简历 后来测试时遇到简历模板在Android手机跟Google浏览器上根据生日计算得出 ...

  8. SQL年龄计算方法

    第一种方法: 用DATEDIFF函数,DATEDIFF(YEAR,beginDate,endDate). 测试语句: 1 DECLARE @birthdayDate DATE 2 DECLARE @e ...

  9. java与IOS之间的RSA加解密

    很简单的一个需求,ipad端给密码RSA加密,传到java后台,解密.RSA加密算法是基于一个密钥对的,分为公钥和私钥,一般情况公钥加密,私钥解密,但也可私钥加密,公钥解密.还可以验签,就是先用私钥对 ...

随机推荐

  1. python基础面试题

    函数1def foo(arg,li=[]): li.append(arg) return li list1 = foo(21) list2 = foo(11,[2]) list3 = foo(28) ...

  2. 利用Python实现App自动签到领取积分

    要自动签到,最简单的是打开页面分析请求,然后我们用脚本实现请求的自动化.但是发现食行没有页面,只有 APP,这不是一个好消息,这意味着需要抓包处理了. 有需要Python学习资料的小伙伴吗?小编整理[ ...

  3. error: Build input file cannot be found: '*******/node_modules/react-native/Libraries/WebSocket/libfishhook.a' 问题解决记录

    解决了刚才的'config.h' file not found问题,本以为就可以顺畅的跑起来,谁知道又被恶心到了,Build input file cannot be found!!! 问题: err ...

  4. [2017BUAA软工助教]结对项目小结

    2017BUAA结对项目小结 一.作业链接 http://www.cnblogs.com/jiel/p/7604111.html 二.评分细则 1.注意事项 按时间完成并提交--正常评分 晚交一周以内 ...

  5. 为什么java的main方法必须是静态的

    今天看类型信息时发现一个问题,不能再main方法中打印this关键字的信息,这时想起了之前的知识,不能再静态方法中调用this.理由很简单,this表示“这个对象”,也就是声明一个类的对象,然而静态方 ...

  6. 通俗易懂的word2Vec负采样理解

    理解:http://www.shuang0420.com/2017/03/21/NLP%20%E7%AC%94%E8%AE%B0%20-%20%E5%86%8D%E8%B0%88%E8%AF%8D%E ...

  7. [转帖]Mysql 开启跟踪的一个方法

    MySQL 事件跟踪器 , MySQL 无须重启服务 跟踪 SQL , 也无须配置日志 原博客地址: https://www.cnblogs.com/wuyifu/p/3328024.html 第一步 ...

  8. iptables之四表五链

    iptables可谓是SA的看家本领,需要着重掌握.随着云计算的发展和普及,很多云厂商都提供类似安全组产品来修改机器防火墙. iptables概念 iptables只是Linux防火墙的管理工具而已. ...

  9. 怎么把焦点放在RichEdit的最后一行

    急急急!!!!如何把焦点放在RichEdit的最后一行!! 请高手指点,在线等!!!!当添加到出现滚动条时焦点就不会往下了,怎么把焦点移到最后一行 RichEdit-> Lines-> A ...

  10. windows文件共享 防火墙规则设置

    防火墙入站规则.完成以下两项设置即可. 设置一 操作:允许连接协议类型:UDP本地端口:137, 138远程端口:所有端口 设置二 操作:允许连接协议类型:TCP本地端口:139, 445远程端口:所 ...