输入日期得出星座c语言,根据日期计算星座

本文介绍了如何使用C语言根据用户输入的日期计算对应的星座。通过定义星座结构体,并结合日期条件判断,实现了星座的计算。示例代码展示了从日期到星座转换的完整过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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 <= 331) ||

(mmdd >= 401 && mmdd <= 419)) {

constellation = JPSConstellation(code: 1, name: "白羊座")

} else if ((mmdd >= 420 && mmdd <= 430) ||

(mmdd >= 501 && mmdd <= 520)) {

constellation = JPSConstellation(code: 2, name: "金牛座")

} else if ((mmdd >= 521 && mmdd <= 531) ||

(mmdd >= 601 && mmdd <= 621)) {

constellation = JPSConstellation(code: 3, name: "双子座")

} else if ((mmdd >= 622 && mmdd <= 630) ||

(mmdd >= 701 && mmdd <= 722)) {

constellation = JPSConstellation(code: 4, name: "巨蟹座")

} else if ((mmdd >= 723 && mmdd <= 731) ||

(mmdd >= 801 && mmdd <= 822)) {

constellation = JPSConstellation(code: 5, name: "狮子座")

} else if ((mmdd >= 823 && mmdd <= 831) ||

(mmdd >= 901 && mmdd <= 922)) {

constellation = JPSConstellation(code: 6, name: "处女座")

} else if ((mmdd >= 923 && mmdd <= 930) ||

(mmdd >= 1001 && mmdd <= 1023)) {

constellation = JPSConstellation(code: 7, name: "天秤座")

} else if ((mmdd >= 1024 && mmdd <= 1031) ||

(mmdd >= 1101 && mmdd <= 1122)) {

constellation = JPSConstellation(code: 8, name: "天蝎座")

} else if ((mmdd >= 1123 && mmdd <= 1130) ||

(mmdd >= 1201 && mmdd <= 1221)) {

constellation = JPSConstellation(code: 9, name: "射手座")

} else if ((mmdd >= 1222 && mmdd <= 1231) ||

(mmdd >= 101 && mmdd <= 119)) {

constellation = JPSConstellation(code: 10, name: "摩羯座")

} else if ((mmdd >= 120 && mmdd <= 131) ||

(mmdd >= 201 && mmdd <= 218)) {

constellation = JPSConstellation(code: 11, name: "水瓶座")

} else if ((mmdd >= 219 && mmdd <= 229) ||

(mmdd >= 301 && mmdd <= 320)) {

//考虑到2月闰年有29天的

constellation = JPSConstellation(code: 12, name: "双鱼座")

}else{

print(mmdd)

print("日期错误")

constellation = nil

}

return constellation

}

最后可以打印验证一下

override func viewDidLoad() {

super.viewDidLoad()

let formatter = DateFormatter()

formatter.dateFormat = "yyyy/MM/dd"

let date = formatter.date(from: "1995/1/11")

let constellation = constellationWith(date: date!)

print(constellation?.name as Any)

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值