package stringid
import java.time.LocalDate
object stringid02 {
def getGender(idCard:String):String = {
val g = idCard.substring(16,17).toInt
if(g % 2 == 1){
"男"
}else{
"女"
}
}
def getAge(idCard:String):Int = {
val year = idCard.substring(16,17)
LocalDate.now().getYear - year.toInt
}
def getProvince(idCard:String):String = {
val code = idCard.substring(0,2)
val map = Map("11"->"北京","12"->"天津")
map.getOrElse(code,"未知")
}
def getZodiac(idCard: String): String = {
val month = idCard.substring(10,12).toInt
val day = idCard.substring(12,14).toInt
if ((month == 1 && day >= 20) || (month == 2 && day <= 18)) "水瓶座"
else if ((month == 2 && day >= 19) || (month == 3 && day <= 20)) "双鱼座"
else if ((month == 3 && day >= 21) || (month == 4 && day <= 19)) "白羊座"
else if ((month == 4 && day >= 20) || (month == 5 && day <= 20)) "金牛座"
else if ((month == 5 && day >= 21) || (month == 6 && day <= 20)) "双子座"
else if ((month == 6 && day >= 21) || (month == 7 && day <= 22)) "巨蟹座"
else if ((month == 7 && day >= 23) || (month == 8 && day <= 22)) "狮子座"
else if ((month == 8 && day >= 23) || (month == 9 && day <= 22)) "处女座"
else if ((month == 9 && day >= 23) || (month == 10 && day <= 22)) "天秤座"
else if ((month == 10 && day >= 23) || (month == 11 && day <= 21)) "天蝎座"
else if ((month == 11 && day >= 22) || (month == 12 && day <= 21)) "射手座"
else if ((month == 12 && day >= 22) || (month == 1 && day <= 19)) "摩羯座"
else "未知"
}
def getBirthday(idCard: String): String = {
val month = idCard.substring(10, 12)
val day = idCard.substring(12, 14)
month + "-" + day
}
def getInfo(zodiac:String):String = {
val map = Map(
"白羊座" -> "热情活泼,充满活力,喜欢追求新鲜刺激,但有时冲动易怒,固执己见。",
"金牛座" -> "稳重踏实,勤奋踏实,注重物质享受,但有时固执己见,对钱财看得较重。",
"双子座" -> "思维敏捷,沟通能力强,适应力强,但有时善变不安,不够专注。",
"巨蟹座" -> "敏感温柔,家庭观念浓厚,保护欲强,但有时过于情绪化,依赖性强。",
"狮子座" -> "自信热情,有领导能力,讲义气,但有时刚愎自用,虚荣心强。",
"处女座" -> "细致完美,思路清晰,待人真诚,但有时过于挑剔,吹毛求疵。",
"天秤座" -> "和谐公正,公关协调力强,但有时犹豫不决,优柔寡断,理想化。",
"天蝎座" -> "神秘敏锐,固执洞察力强,但有时报复心强,多疑。",
"射手座" -> "乐观开赋,爱自由冒险,但有时粗心大意,缺乏耐性。",
"摩羯座" -> "稳重理性,有耐心和野心,但有时过于保守功利,缺乏热情。",
"水瓶座" -> "创新独立,理想主义,友善团结,但有时反叛冷酷。",
"双鱼座" -> "浪漫细腻,富有同情心,爱幻想,但有时意志薄弱,粗心大意。")
map.getOrElse(zodiac, "未知")
}
def main(args: Array[String]): Unit = {
val idCard = "149005201503030083"
val gender = getGender(idCard)
val birthday =getBirthday(idCard)
val age = getAge(idCard)
val province = getProvince(idCard)
val zodiac = getZodiac(idCard)
val info = getInfo(zodiac)
println(s"---------------------")
println(s"性别:${gender}")
println(s"籍贯:${province}")
println(s"年龄:${age}")
println(s"星座:${zodiac}")
println(s"生日:${birthday}")
println(s"性格介绍:${info}")
println(s"---------------------")
}
}