Skip to main content

星座

星座

var (
constellations = []string{
"Capricorn", // 摩羯座,12月22日~1月19日
"Aquarius", // 水瓶座,1月20日~2月18日
"Pisces", // 双鱼座,2月19日~3月20日
"Aries", // 白羊座,3月21日~4月19日
"Taurus", // 金牛座,4月20日~5月20日
"Gemini", // 双子座,5月21日~6月21日
"Cancer", // 巨蟹座,6月22日~7月22日
"Leo", // 狮子座,7月23日~8月22日
"Virgo", // 处女座,8月23日~9月22日
"Libra", // 天秤座,9月23日~10月23日
"Scorpio", // 天蝎座,10月24日~11月22日
"Sagittarius", // 射手座,11月23日~12月21日
"Capricorn",
}
criteria = []int{22, 20, 19, 21, 20, 21, 22, 23, 23, 23, 24, 23, 22}
)

func Constellation(month, day int) string {
if day < criteria[month] {
return constellations[month-1]
}
return constellations[month]
}

Try it

func main() {
d := time.Date(time.Now().Year(), time.January, 1, 0, 0, 0, 0, time.Local)
for i := 0; i < 366; i++ {
date := d.AddDate(0, 0, i)
constellation := Constellation(int(date.Month()), date.Day())
fmt.Printf("%s \t %s \n", constellation, date.Format("2006-01-02"))
}
}

时针分针重合

把时针和分针的运动,看成 AB 两个人在圆形跑道进行追赶比赛。

AB 两人从同一起跑线开始跑,24 小时内,A(代表时针)跑了 2 圈,B(代表分针)跑了 24 圈。B 多跑了 22 圈,即超过 A22 次。

重合时间:

0:0001:0602:1203:1704:2205:2706:3307:3808:4309:4910:54
12:0013:0614:1215:1716:2217:2718:3319:3820:4321:4922:54

时针速度 w1 = 30/60 = 0.5(°/min)
分针速度 w2 = 360/60 = 6(°/min)
6t = 0.5t + 360n
t = 720n/11, t < = 24 x 60
n <= 22