Go语言获取指定年份生肖

根据给定年份,返回生肖字符串,公元前使用负值即可。(比如2022年,调用使用GetShengXiao(2022),公元前21年,调用使用GetShengXiao(-21))。

// 获取生肖索引
func GetShengXiaoIndex(year int) int {
	// 不存在0年
	if year == 0 {
		panic("err: invalid year")
	}

	// 公元前补1
	if year < 0 {
		year += 1
	}

	idx := (year - 4) % 12

	if idx < 0 {
		idx += 12
	}

	return idx
}

// 根据给定年份获取生肖
func GetShengXiao(idx int) string {
	return [12]string{"鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"}[idx]
}

发表回复

您的电子邮箱地址不会被公开。