iOS 根据生日得到生肖,星座,年龄的算法

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

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

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

    //日历
    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
    
    NSUInteger unitFlags = NSCalendarUnitYear;
    
    NSDateComponents *components = [gregorian components:unitFlags fromDate:birthday toDate:[NSDate  date] options:0];

    self.age.text = [NSString stringWithFormat:@"%ld岁了",[components year]+1];
}

根据月日得到星座:

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

根据年份得到生肖:

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏雨尘分享

ReactiveCocoa 入门知识——归总篇

2234
来自专栏技术总结

DWIntrosPage 简单定制引导页

下面摘取部分代码 DWIntrosPageContentViewController

1345
来自专栏陈满iOS

iOS网络请求之上传图片:从示例到源码解析 -- 以上传Face++SDK回调的图片为例(HYNetworking,AFNetworking,XMNetworking)

本文一开始上传图片以调用HYNetworking的API为例,这个网络框架是以AFNetworking为基础进行的封装。HYNetworking内部实现上传图片...

2342
来自专栏哈雷彗星撞地球

iOS 中如何判断当前是2G/3G/4G/5G/WiFi

5G 什么的,还得等苹果API更新啊,不过将来还是这个处理过程就是了。 关于判断当前的网络环境是2G/3G/4G,这个问题以前经常看到,最近在一工程里看到了如...

2052
来自专栏iOS开发攻城狮的集散地

UIActivityViewController系统原生分享-仿简书分享

3968
来自专栏coding...

Objective-C MapKit的使用-LBS简单的租车主界面demo效果分析代码demo地址

https://github.com/gongxiaokai/EasyCarDemo

1404
来自专栏美团技术团队

ReactiveCocoa中潜在的内存泄漏及解决方案

ReactiveCocoa是GitHub开源的一个函数响应式编程框架,目前在美团App中大量使用。用过它的人都知道很好用,也确实为我们的生活带来了很多便利,特别...

5218
来自专栏王大锤

iOS 自己封装的网络请求,json解析的类

4129
来自专栏陈满iOS

[iOS源码笔记]·第三方网络图片处理框架:SDWebImage网络下载及缓存管理策略

typedef void(^SDExternalCompletionBlock)(UIImage * _Nullable image, NSError * _N...

1231
来自专栏一“技”之长

iOS获取通讯录联系人信息 原

随着apple对用户隐私的越来越重视,IOS系统的权限设置也更加严格,在获取系统通讯录之前,我们必须获得用户的授权。权限申请代码示例如下:

2313

扫码关注云+社区

领取腾讯云代金券