案例,拆分身份证号的秘密
package stringid
object stringid03 {
def getGender(idCard:String):String = {
val g = idCard.substring(16,17).toInt
if(g % 2 == 1){
"男"
} else {
"女"
}
}
def main(args: Array[String]): Unit = {
val idCard = "420381200509213930"
val gender = getGender(idCard)
val birthday = "9-21"
val age = 20
val province = "湖北"
val zodiac = "处女座"
println(s"----------------------------------------")
println(s" 籍贯: ${province}")
println(s" 性别: ${gender}")
println(s" 年龄: ${age}")
println(s" 生日: ${birthday}")
println(s" 星座: ${zodiac}")
println(s"----------------------------------------")
}
}

package stringid
import java.time.LocalDate
/*
* 案例,拆分身份证号的秘密
* 1. 倒数第二个数:奇数,男;偶数:女;
*
*/
object stringid03 {
// 倒数第二个数:奇数,男;偶数:女;
def getAge(idCard: String): Int = {
val year = idCard.substring(16, 17)
LocalDate.now().getYear - year.toInt
}
def getGender(idCard: String): String = {
val g = idCard.substring(16, 17).toInt
if (g % 2 == 1) {
"男"
} else {
"女"
}
}
def getProvince(idCard: String): String = {
val code = idCard.substring(0, 2)
val map = Map("11" -> "北京", "12" -> "天津", "13" -> "河北", "14" -> "山西", "15" -> "内蒙古")
map.getOrElse(code, "未知")
}
def getBirthday(idCard: String): String = {
val month = idCard.substring(10, 12)
val day = idCard.substring(12, 14)
month + "-" + day
}
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 main(args: Array[String]): Unit = {
val idCard = "429005201505300083"
val gender = getGender(idCard)
val birthday = getBirthday(idCard)
val age = getAge(idCard)
val province = getProvince(idCard)
val zodiac = getZodiac(idCard) // 星座
println(s"----------------------------------------")
println(s" 籍贯: ${province}")
println(s" 性别: ${gender}")
println(s" 年龄: ${age}")
println(s" 生日: ${birthday}")
println(s" 星座: ${zodiac}")
println(s"----------------------------------------")
}
}