在app中,展示个人信息时,有时候服务器只返回一个生日,然后要在个人信息里展示相应的星座名称和图标,这时候就需要客户端根据生日自己计算,那么怎么计算呢,方法很简单。
申明一个星座结构体,里面包含星座code,星座名字。
code用来标识一个星座,可以根据code来设置不同的星座图片,在需要国际化的时候根据code来展示相应的本地化字符串。
struct JPSConstellation {
///星座code
var code: Int
///星座名
var name: String
}
根据日期计算出星座
func constellationWith(date: Date) -> JPSConstellation? {
guard let calendar = NSCalendar(identifier: NSCalendar.Identifier.gregorian) else {
return nil
}
let components = calendar.components([.month, .day], from: date)
let month = components.month!
let day = components.day!
// 月以100倍之月作为一个数字计算出来
let mmdd = month * 100 + day;
var constellation: JPSConstellation?
if ((mmdd >= 321 && mmdd &l